<template>
	<view class="home">
		<u-sticky offset-top="0">
			<view class="tophead">
				<uni-icons type="left" color="#666" size="26" @click="retFn"></uni-icons>
				<view class="">
					多普勒测流车定位
				</view>
				<view class="" style="width: 100rpx;display: flex;justify-content: flex-end;align-items: center;">
					<view class="" style="margin-right: 20rpx;">
						<uni-icons type="calendar" color="#000000" size="26" @click="flowRecordingFn"></uni-icons>
					</view>
					<view class="" style="margin-right: 20rpx;">
						<uni-icons type="gear-filled" color="#000000" size="26" @click="allocationFn"></uni-icons>
					</view>
				</view>
			</view>
		</u-sticky>
		<!-- 内容 -->
		<view class="concent_box">
			<!-- 							<view class="" style="margin: 20rpx;">
				<u-button size="large" @click="startMeasuringFn" type="warning" shape="circle"
					text="开始测量"></u-button> 
			</view> -->
			<view class="" style="margin: 20rpx 0;display: flex;justify-content: space-between;align-items: center;">
				<view class="">
					<u-button class="custom-style_w" @click="emergencySuspension" type="error" shape="circle"
						text="紧急暂停"></u-button>
				</view>
				<view class="">
					<u-button class="custom-style_w" @click="horizontalReturn" type="success" color="#9f6fa2" shape="circle"
						text="横向返回"></u-button>
				</view>
				<view class="">
					<u-button class="custom-style_w" @click="manualAscent" type="success" shape="circle"
						text="手动上升"></u-button>
				</view>
				<view class="">
					<u-button class="custom-style_w" @click="manualDescent" type="primary" shape="circle"
						text="手动下降"></u-button>
				</view>
			</view>
			<view class="">
				<u-button class="custom-style_w" @click="returnMeasurement" type="warning" shape="circle"
					text="打开测量"></u-button>
			</view>
			<view class="inibox">
				<view class="inibox_but" hover-class="inibox_acv" @click="iniIFFn">
					设备初始化
				</view>
				<view class="inibox_in">
					<view class="inibox_tt_a" hover-class="inibox_ttacv" @click="tobelFn" v-if="lanname == ''">点击连接设备
					</view>
					<view class="inibox_tt_b" hover-class="inibox_ttacv" @click="lampRFn" v-if="lanname != ''">点击断开设备
					</view>
				</view>
			</view>
			<!-- 电压电量 -->
			<view class="element_box">
				<u-line-progress height="16" :showText="true" :percentage="percentage" :activeColor="activeColor"
					:inactiveColor="inactiveColor">
					<view class="u-percentage-slot">
						<view>{{voltage}}V</view>
						<view style="margin-left: 5px;">{{percentage}}%</view>
					</view>
				</u-line-progress>
			</view>
			<!-- 圈数 -->
			<view class="real_box">
				<view class="real_flx">
					<view class="real_l">
						<view class="buttn">
							<image class="img" src="@/static/hengx.png" mode=""></image>
						</view>
					</view>
					<view class="real_r">
						<!-- <view class="real_tex" v-if="xxNubAc<1000"> -->
						<view class="real_tex">
							当前：{{xxNubAc}}
						</view>
					</view>
					<view class="real_r_r">
						<view class="real_tex">
							测线{{measuringXX.name}}：{{measuringXX.nub}}
						</view>
					</view>
				</view>
			</view>
			<view class="real_box">
				<view class="real_flx">
					<view class="real_l_a">
						<view class="buttn">
							<image class="img" src="@/static/zongx.png" mode=""></image>
						</view>
					</view>
					<view class="real_r_a">
						<view class="real_tex">
							当前：{{yyNubAc}}
						</view>
					</view>
					<view class="real_r_a_r">
						<view class="real_tex">
							测点{{measuringYY.name}}：{{measuringYY.nub}}
						</view>
					</view>
				</view>
			</view>
			<!-- 定位 -->
			<view class="remoteControlUnit">
				<view class="box_list">
					<view :class="{'box_but':i.color == 0,'box_but_acv':i.color == 1,'box_but_rev':i.color == 2}"
						v-for="(i,index) in cezhanACV" :key="index" @click="measuringLineFn(i,index)">
						测线{{i.id}}
					</view>
				</view>
			</view>
			<!-- 测试 -->
			<!-- <button @click="equipmentEffluent">计算出水</button> -->
			<!-- 测量归零按钮 -->
			<view class="return_oZero">
				<view class="return_l" hover-class="return_l_acv" @click="returnToOriginFn">
					<text class="">
						返回
					</text>
					<text class="">
						原点
					</text>
				</view>
				<view class="return_r" hover-class="return_r_acv" @click="descentMeasurementFn">
					<text class="">
						下降
					</text>
					<text class="">
						测量
					</text>
				</view>
			</view>
			<view class="realtime">
				<view class="i_a" style="color: #dd5e04;">
					当前水深：
				</view>
				<view class="i_b" style="color: #ff6923;">
					{{cfgCeZhan.depthOfWater}}
				</view>
				<view class="" style="width: 120rpx;">
					<u-button class="buty" type="success" text="修改" @click="allocationFn"></u-button>
				</view>
			</view>
		</view>
		<!-- 弹出弹出层 -->
		<!-- <u-popup :show="showpop" mode="left"> -->
		<u-popup :show="showpop" mode="left">
			<view class="classpop">
				<view class="classpop_tit">
					输 入 水 深
				</view>
				<view class="conpop">
					<view class="popitem">
						<view class="poptext">
							当前水深：
						</view>
						<view class="poptext_inpp">
							<u--input :fontSize='fontSize' clearable type="number" placeholder="输入水深" border="surround"
								v-model="cfgCeZhan.depthOfWater" @change="chanWdInput"></u--input>
							<u-button class="buty" type="success" text="获取" @click="acquireFnBut"></u-button>
						</view>

					</view>
					<view class="popitem">
						<view class="poptext">
							横向转速比：
						</view>
						<view class="poptext_inpp">
							<u--input :fontSize='fontSize' clearable type="number" placeholder="横向轮直径" border="surround"
								v-model="cfgCeZhan.speedRatioXX"></u--input>
						</view>
					</view>
					<view class="popitem">
						<view class="poptext">
							纵向转速比：
						</view>
						<view class="poptext_inpp">
							<u--input :fontSize='fontSize' clearable type="number" placeholder="减速机比例" border="surround"
								v-model="cfgCeZhan.speedRatioYY"></u--input>
						</view>
					</view>
					<view class="popitem">
						<view class="poptext">
							流速系数：
						</view>
						<view class="poptext_inpp">
							<u--input :fontSize='fontSize' clearable type="number" placeholder="输入系数" border="surround"
								v-model="cfgCeZhan.xishu"></u--input>
						</view>
					</view>
					<view class="popitem">
						<view class="poptext">
							A点测深：
						</view>
						<view class="poptext_flx">
							<u--input :fontSize='fontSize' clearable type="number" placeholder="入水深度" border="surround"
								v-model="cfgCeZhan.depthOfEntry"></u--input>
							<!-- 							<view class="tex_l">{{cfgCeZhan.thoroughH.b}}</view>
							<view class="tex_r">0.6h</view> -->
						</view>
					</view>
					<view class="popitem">
						<view class="poptext">
							出水高度：
						</view>
						<view class="poptext_flx">
							<u--input :fontSize='fontSize' clearable type="number" placeholder="入水深度" border="surround"
								v-model="cfgCeZhan.heightOfWater"></u--input>
						</view>
					</view>
					<view class="popitem">
						<view class="poptext">
							高度基准点：
						</view>
						<view class="poptext_flx">
							<view class="tex_l">{{vuexCezhanInfo.datumMark}}</view>
						</view>
					</view>
					<view class="popitem">
						<view class="poptext">
							流速仪距基准点：
						</view>
						<view class="poptext_flx">

							<view class="tex_l">{{vuexCezhanInfo.liusuyiHeight}}</view>
						</view>
					</view>
					<view class="jiag_top">
						<view class="">
							流速仪初始位置在基准点上部时为正、下部为负
						</view>
					</view>
					<view class="jiag_bomm">
						<view class="">
							流速仪下降高度
						</view>
					</view>
					<!-- 架空高 -->
					<scroll-view class="scroll-view_H" scroll-x="true">
						<view class="jiag_flx">
							<view class="jiag_fnub textbw">
								测线
							</view>
							<view class="jiag_fnub textbw">
								坐标
							</view>
							<view class="jiag_fnub textbw">
								走距
							</view>
							<view class="jiag_fnub textbw">
								基准点高
							</view>
							<view class="jiag_fnub textbw">
								到水面
							</view>

							<view class="jiag_fnub textbw">
								到A点
							</view>
							<!-- 							<view class="jiag_fnub textbw">
													到B点
												</view>
												<view class="jiag_fnub textbw">
													到C点
												</view> -->
						</view>

						<view class="jiag_flx" v-for="(i,index) in jiakong" :key="index">
							<view class="jiag_fnub">
								{{index+1}}
							</view>
							<view class="jiag_fnub">
								{{i.cR}}
							</view>
							<view class="jiag_fnub">
								{{i.zJ}}
							</view>
							<view class="jiag_fnub">
								{{i.bC}}
							</view>
							<view class="jiag_fnub">
								{{(i.bC - cfgCeZhan.depthOfWater*1+ vuexCezhanInfo.liusuyiHeight * 1).toFixed(2)}}
							</view>


							<view class="jiag_fnub">
								{{(i.bC * 1 - cfgCeZhan.depthOfWater * 1 + cfgCeZhan.depthOfEntry * 1 + vuexCezhanInfo.liusuyiHeight * 1).toFixed(2)}}
							</view>
							<!-- 							<view class="jiag_fnub">
													{{(i.bC * 1 - cfgCeZhan.depthOfWater * 1 + cfgCeZhan.thoroughH.b * 1 + vuexCezhanInfo.liusuyiHeight * 1).toFixed(2)}}
												</view>
												<view class="jiag_fnub">
													{{(i.bC * 1 - cfgCeZhan.depthOfWater * 1 + cfgCeZhan.thoroughH.c * 1 + vuexCezhanInfo.liusuyiHeight * 1).toFixed(2)}}
												</view> -->
						</view>
					</scroll-view>

					<view class="jiag_top">
						流速仪下降高度=基准点高-当前水深+该点测深+流速仪距基准点高度
					</view>
				</view>
			</view>
			<view class="butpop">
				<view class="" style="padding: 30rpx;">
					<u-button @click="confirmFn" type="success" text="确定"></u-button>
				</view>
			</view>
		</u-popup>
		<!-- 测量弹窗 -->
		<!-- <u-popup :show="flowCheckpop" mode="top"> -->
		<u-popup :show="flowCheckpop" mode="top">
			<view class="viewHistory">
				<!-- 圆 -->
				<view class="head_d">
					<view class="yuan_a" style="color: #aaff00;">
						<!-- 						<view class="nub">
							<text class="yang_texrt">{{timeNub}}</text>
						</view> -->
						<view class="nub yang_texrt">
							{{timeNub}}
						</view>
						<view class="linbox" style="background-color: #576b01;">

						</view>
						<view class="">
							有效流速
						</view>
					</view>
					<view class="" style="margin-bottom: -30rpx;">
						<view :class="isActive?'yuan_b':'yuan_c'">

						</view>
						<view class="" style="text-align: center;font-size: 50rpx;color: #00ff00;">
							{{measuringXX.name}}{{measuringYY.name}}
						</view>
					</view>

					<view class="yuan_a" style="color: #ffd900;">
						<view class="nub yang_texrt">
							{{signaVelocity}}
						</view>
						<view class="linbox" style="background-color: #8a5a00;">

						</view>
						<view class="">
							瞬时流速
						</view>
					</view>
				</view>
				<!-- 时间线条 -->
				<view class="line_cla_box">
					<view class="line_cla">
						<view class="line_a" :style="{height: i*30 + 'rpx'}" v-for="(i,index) in inlineArr"
							:key="index">

						</view>
					</view>
					<!-- 进度条 -->
					<view class="progress_bar">
						<u-line-progress :percentage="percentageNub" height="5" :showText="false"
							:activeColor="actiColor" :inactiveColor="inacteColor" />
					</view>
					<!-- 均匀度 -->
					<view class="junyunddd">
						<view class="junyun">
							<view class="jun_a">
								{{junyundu}}
							</view>
							<view class="jun_b">
								均匀度
							</view>
						</view>
						<view class="junyun">
							<view class="junyun_a">
								最大流速：{{evennub}}
							</view>
							<view class="junyun_b">
								最小流速：{{liusu}}
							</view>
						</view>
					</view>
					<!-- 					<view class="junyun">
						<view class="junyun_a">
							最大流速：{{evennub}}
						</view>
						<view class="junyun_b">
							最小流速：{{liusu}}
						</view>
					</view> -->
					<view class="" style="display: flex;align-items: center;justify-content: space-between;">
						<u-button class="custom-style" @click="remeasureFn" text="重新测量" :plain="true" shape="circle"
							color='#ffff00'></u-button>
						<view class="" style="width: 40rpx;">

						</view>
						<u-button class="custom-style" @click="confirmflowCheckpopFn" text="返回" :plain="true"
							shape="circle" color='#00ffff'></u-button>
					</view>
				</view>
				<!-- <button @click="sixFn">语音</button> -->
				<!-- <button @click="analogSignalAdd">添加数据</button> -->
				<!-- <button @click="analogSignalNumber">模拟信号</button> -->
				<!-- <button @click="inquiryFn">多普勒</button> -->
				<!-- <button @c32lick="calculatedFlowFn">计算流量</button> -->
				<!-- <button @click="positionMeasuringPoint">测线</button> -->
				<!-- 保存计算 -->
				<!-- <view class="" style="margin-bottom: 50rpx;" v-if="saveIF"> -->
				<view class="" style="margin-bottom: 30rpx;" v-if="saveIF">
					<u-button class="custom-style" @click="holdPointVelocityFn" text="保存点流速" :plain="true"
						shape="circle" color='#00ff00'></u-button>
				</view>

				<view class="" style="margin-bottom: 30rpx;"
					v-if="cexianCounter >= cezhanObj.cexianlist.length * 3 && dianfa == 3">
					<u-button class="custom-style" @click="calculatedFlowFn" text="计算流量" :plain="true" shape="circle"
						color='#00ffff'></u-button>
				</view>
				<view class="" style="margin-bottom: 50rpx;"
					v-if="cexianCounter >= cezhanObj.cexianlist.length && dianfa == 1">
					<u-button class="custom-style" @click="calculatedFlowFn" text="计算流量" :plain="true" shape="circle"
						color='#00ffff'></u-button>
				</view>
				<!-- 测线 -->
				<view class="measuring_box">
					<!-- 3点法 -->
					<view class="box_num" v-if="dianfa == 3">
						<view
							:class="{ 'num_i_acv': i.status == 0,'num_i_box': i.status == 1,'num_i_nue': i.status == 2 }"
							v-for="(i,index) in measuringArr" :key="index">
							<view class="text_bom">

								<view class="text_aaom">
									测线{{index + 1}}
								</view>
								<view class="text_bbom">
									平均流速：{{i.aveTy}}
								</view>
							</view>
							<view class="text_top">
								<view class="text">
									<view class="text_fdlx">
										<view class="text_a">
											{{index+1}}A
										</view>
										<view class="text_b">
											{{i.a.time}}
										</view>
										<view class="text_b">
											{{i.a.nub}}
										</view>
										<!-- 	<view class="text_b">
												{{i.a.evenness}}
											</view> -->
										<view class="text_c">
											{{i.a.liusu}}
										</view>
									</view>
									<view class="text_fdlx">
										<view class="text_a">
											{{index+1}}B
										</view>
										<view class="text_b">
											{{i.b.time}}
										</view>
										<view class="text_b">
											{{i.b.nub}}
										</view>
										<!-- <view class="text_b">
											{{i.b.evenness}}
										</view> -->
										<view class="text_c">
											{{i.b.liusu}}
										</view>
									</view>
									<view class="text_fdlx">
										<view class="text_a">
											{{index+1}}C
										</view>
										<view class="text_b">
											{{i.c.time}}
										</view>
										<view class="text_b">
											{{i.c.nub}}
										</view>
										<!-- <view class="text_b">
											{{i.c.evenness}}
										</view> -->
										<view class="text_c">
											{{i.c.liusu}}
										</view>
									</view>
								</view>
							</view>

						</view>
					</view>
					<!-- 1点法 -->
					<view class="box_num" v-if="dianfa == 1">
						<view :class="{ 'text_top_dianf': i.status == 1,'text_top_dianf_acv': i.status == 0}"
							v-for="(i,index) in measuringArr" :key="index">
							<view class="text_top">
								<view class="text_a">
									{{index+1}}A
								</view>
								<view class="text_dian_tit">
									<view>
										<!-- <view class="">
											{{i.evenness}}
										</view>
										<view class="youixiao" style="font-size: 26rpx;text-align: center;">
											最大流速
										</view> -->
										<view class="">
											{{i.junyundu}}
										</view>
										<view class="youixiao" style="font-size: 26rpx;text-align: center;">
											均匀度
										</view>
									</view>
									<!-- <view>{{i.nub}}</view> -->
									<view>
										<view class="">
											{{i.xishu}}
										</view>
										<view class="youixiao" style="font-size: 26rpx;text-align: center;">
											系数
										</view>
									</view>
									<!-- 									<view>
										<view class="">
											{{i.b}}
										</view>
										<view class="youixiao" style="font-size: 26rpx;text-align: center;">
											最小流速
										</view>
									</view> -->
								</view>
								<view class="text_b">
									<view class="">
										{{i.aveTy}}
									</view>
									<view class="youixiao" style="font-size: 26rpx;">
										有效流速
									</view>
								</view>
							</view>

						</view>
					</view>
				</view>
			</view>
		</u-popup>

		<!-- 计算流量弹窗 -->
		<u-popup :show="flowRateIF" mode="top">
			<view class="viewHistory_flow_rate">
				<duopuleflow ref="myCDF" @fatherMethod="fatherMethod" :objFlowData="objFlowData"></duopuleflow>
			</view>
		</u-popup>
		<!-- 历史流量 -->
		<u-popup :show="flowRecordingIF" mode="top">
			<!-- 			<view class="box_pp">
				{{historyDetails.name}}
			</view> -->
			<view class="viewHistory_flow_rate_history">
				<!-- 测线 -->
				<view class="measuringLine">
					<view class="" style="text-align: center;color: #aaff00;font-size: 50rpx;">
						实测流量列表
					</view>
					<view class="box_num">
						<view :class="{ 'num_i': i.dianfa == 1,'num_i_acv': i.dianfa == 3}"
							v-for="(i,index) in flowRecordingArr" :key="index" @click="clicDetailsIF(i)"
							@longpress="removeRecording(i.id)">
							<view class="text_top">
								<view class="dianfa">
									<text>{{i.name}}</text>
									<text style="font-size: 30rpx;">{{i.dianfa}}点法</text>
								</view>
								<view class="text">
									<view class="text_a">
										水深：
									</view>
									<view class="text_b">
										{{i.wD}}
									</view>
								</view>
								<view class="text">
									<view class="text_a">
										流量：
									</view>
									<view class="text_b">
										{{i.liusliangnub}}
									</view>
								</view>
							</view>
							<view class="text_bom">
								{{i.time}}
							</view>
						</view>
					</view>
				</view>
				<view class="butflx">
					<u-button class="custom-style" @click="hiddenRecordingFn" text="返回" :plain="true" shape="circle"
						color='#00ffff'></u-button>
				</view>
			</view>

		</u-popup>
		<!-- 历史流量详情  -->
		<u-popup :show="trafficDetailsIF" mode="top">
			<!-- 测线 -->
			<view class="measuring_box_details" v-if="historyDetails.dianfa == 3">
				<view class="" style="text-align: center;color: #00ff00;font-size: 40rpx;">
					实测流量列表
				</view>
				<view class="box_pp">
					{{historyDetails.name}}
				</view>
				<view class="box_num">
					<view class="num_i_nue" v-for="(i,index) in historyDetails.measuringArr" :key="index">
						<view class="text_bom">
							<view class="text_aaom">
								测线{{index + 1}}
							</view>
							<view class="text_bbom">
								平均流速：{{i.aveTy}}
							</view>
						</view>
						<view class="text_top">
							<view class="text">
								<view class="text_fdlx">
									<view class="text_a">
										{{index+1}}A
									</view>
									<view class="text_b">
										{{i.a.time}}
									</view>
									<view class="text_b">
										{{i.a.nub}}
									</view>
									<!-- 								<view class="text_b">
										{{i.a.evenness}}
									</view> -->
									<view class="text_b">
										{{i.a.liusu}}
									</view>

								</view>
								<view class="text_fdlx">
									<view class="text_a">
										{{index+1}}B
									</view>
									<view class="text_b">
										{{i.b.time}}
									</view>
									<view class="text_b">
										{{i.b.nub}}
									</view>
									<!-- 	<view class="text_b">
										{{i.b.evenness}}
									</view> -->
									<view class="text_b">
										{{i.b.liusu}}
									</view>
								</view>
								<view class="text_fdlx">
									<view class="text_a">
										{{index+1}}C
									</view>
									<view class="text_b">
										{{i.c.time}}
									</view>
									<view class="text_b">
										{{i.c.nub}}
									</view>
									<!-- <view class="text_b">
										{{i.c.evenness}}
									</view> -->
									<view class="text_b">
										{{i.c.liusu}}
									</view>
								</view>
							</view>
						</view>

					</view>
				</view>
				<view class="" style="display: flex;align-items: center;justify-content: space-between;">
					<view class="box_ff" style="margin-right: 10rpx;">
						水深：{{historyDetails.wD}}
					</view>
					<view class="box_ff">
						流量：{{historyDetails.liusliangnub}}
					</view>
				</view>

				<view class="box_ff">
					时间：{{historyDetails.time}}
				</view>
				<view class="flx_butflx">
					<!-- <view class="butflx_fggh"> -->
					<u-button class="custom-style" @click="trafficDetailsFn" text="返回" :plain="true" shape="circle"
						color='#00ffff'></u-button>
					<!-- </view> -->
					<!-- 				<view class="butflx_fggh">
						<u-button class="custom-style" @click="trafficuploadFn" text="上报数据" :plain="true" shape="circle"
							color='#aaaaff'></u-button>
					</view> -->
				</view>

			</view>
			<view class="measuring_box_details_acv" v-if="historyDetails.dianfa == 1">
				<view class="" style="text-align: center;color: #00ff00;font-size: 50rpx;">
					测流记录表
				</view>
				<view class="box_ff" style="font-size: 40rpx;">
					测站：{{historyDetails.name}}
				</view>
				<view class="box_num">
					<view class="num_i_nue" v-for="(i,index) in historyDetails.measuringArr" :key="index">
						<view class="text_bom">
							<view class="text_aaom"
								style="text-align: center;background-color: #00ff00;border-radius: 10rpx;padding: 0 5rpx;color: #000000;font-size: 30rpx;">
								测线{{index + 1}}
							</view>
							<view class="">
								有效流速:{{i.aveTy}}
							</view>
						</view>
						<view class=""
							style="display: flex;align-items: center;justify-content: space-between;font-size: 30rpx;color: #00ff00;">
							<view class="">
								均匀度:{{i.junyundu}}
							</view>
							<view class="">
								系数:{{i.xishu}}
							</view>
						</view>
						<view class="text_top">
							<view class="text">
								<view class="text_fdlx">
									<!-- 									<view class="text_a">
																			{{index+1}}B
																		</view> -->
									<view class="text_b">
										<!-- {{i.b}} -->
										{{index+1}}A
									</view>
								</view>
							</view>
						</view>

					</view>
				</view>
				<view class="box_ff" style="display: flex;align-items: center;justify-content: space-between;">
					<view class="" style="margin-right: 10rpx;">
						水深：{{historyDetails.wD}}
					</view>
					<view class="">
						流量：{{historyDetails.liusliangnub}}
					</view>
				</view>

				<view class="box_ff">
					时间：{{historyDetails.time}}
				</view>
				<view class="flx_butflx">
					<!-- <view class="butflx_fggh"> -->
					<u-button class="custom-style" @click="trafficDetailsFn" text="返回" :plain="true" shape="circle"
						color='#00ffff'></u-button>
					<!-- </view> -->
					<!-- 					<view class="butflx_fggh">
						<u-button class="custom-style" @click="trafficuploadFn" text="上报数据" :plain="true" shape="circle"
							color='#aaaaff'></u-button>
					</view> -->
				</view>
			</view>
		</u-popup>

		<!-- 是否返回 -->
		<u-modal :show="showIF" :title="titleIF" @confirm="confirmIF" @cancel="cancelIF" showCancelButton></u-modal>
		<!-- 初始化电机 -->
		<u-modal :show="infIF" title="初始化设备" @confirm="cinfconfirmIF" @cancel="infcancelIF" showCancelButton></u-modal>
		<!-- 返回零点 -->
		<u-modal :show="infZero" title="返回初始点" @confirm="cinfconZero" @cancel="infcanZero" showCancelButton></u-modal>
		<!-- 删除记录 -->
		<u-modal :show="removeIF" title="删除记录" @confirm="cinfconremoveIF" @cancel="infcanremoveIF"
			showCancelButton></u-modal>
		<!-- 横向返回 -->
		<u-modal :show="removefanhui" title="横向返回" @confirm="cinfconrefanhui" @cancel="infcanrefanhui"
			showCancelButton></u-modal>
		<!-- 本地网络历史 -->
		<!-- 遮罩层 -->
		<u-overlay :show="showSlot" @click="showSlot = !showSlot" opacity='0.9'>
			<view class="overlay-wrap">
				<view class="overlay-wrap__box" v-for="(i,index) in slotArr" :key="index">
					<view class="box_a" @click="layFn(i)">
						{{i}}
					</view>
				</view>
			</view>
		</u-overlay>
		<!-- 上传弹窗 -->
		<!-- 		<u-modal :show="showupload" title="是否上传数据？" showCancelButton @confirm="confirmuploadFn"
			@cancel="canceluploadFn"></u-modal> -->
		<u-picker :show="showupload" :columns="columns" keyName="label" @confirm="confirmuploadFn"
			@cancel="canceluploadFn" itemHeight="50"></u-picker>
		<!-- 提示未获取水深 -->
		<u-notify ref="uNotify" message="Hi uView"></u-notify>
		<!-- 测试数据 -->
	</view>
</template>

<script>
	import duopuleflow from '@/components/duopuleFlow.vue'
	import dayjs from '@/common/dayjs.min.js'
	const SixUniTts = uni.requireNativePlugin("SmallSix-SixUniTts")
	export default {
		components: {
			duopuleflow
		},
		data() {
			return {
				removefanhui:false,
				junyundu: 0,
				objFlowData: {
					wD: '',
					dotMethod: '',
					velocityOfFlow: [],
					flowRateList: []
				},
				// valueInput: 0, //输入距离
				automaticMeasurement: false, //自动测量
				infZero: false, //返回初始点
				cezhanACV: [], //按钮
				radiovalue1: '',
				radiolist1: [{
					name: '铅鱼底'
				}, {
					name: '流速仪'
				}, ],
				fontSize: '20px',
				columns: [], //选择器
				showupload: false, //上传弹窗
				showSlot: false, //遮罩
				slotArr: ['本地历史记录', '网络历史记录'], //遮罩
				trafficDetailsIF: false, //历史流量详情
				actiColor: '#00ff00', //进度条
				inacteColor: '#3e3e3e', //进度条
				percentageNub: 100, //进度条
				removeRecorID: '', //删除ID
				removeIF: false, // 删除历史记录
				flowRecordingIF: false, // 历史记录
				flowRecordingArr: [], // 历史记录
				flowRateIF: false, //计算流量
				saveIF: false, // 保存点流速
				activeColor: '#28a745',
				activeColorA: '#28a745',
				activeColorB: '#17a2b8',
				activeColorC: '#ffc107',
				activeColorD: '#dc3545',
				inactiveColor: '#e9ecef',
				percentage: 0, //电量
				voltage: 0, //电压
				isActive: false, //信号灯闪烁
				inlineArr: [], //均匀度线条
				infIF: false,
				flowCheckpop: false, //测量弹窗
				urlAlphabet: 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict',
				liusliangnub: 0, //平均总流量
				showIF: false,
				titleIF: '是否返回',
				cfgCeZhan: {
					xishu: 0.9,
					rangeDifference: '', //距离差
					installH: '', //安装高度
					thoroughH: {
						a: '',
						b: '',
						c: '',
					}, //入水深度
					waterH: '', //距离水面高度
					depthOfWater: '', //实际水深
					depthOfEntry: 0, //入水深度:
				},
				valuesel: 0,
				setUp: {},
				showpop: false,
				deviceId: '', //蓝牙
				serviceId: '', //蓝牙
				characteristicId: '', //蓝牙
				fff: '', //蓝牙
				wD: 0, //水深
				count: 0, //计数
				xxNubAc: 0, //横向圈数
				yyNubAc: 0, //纵向圈数
				timeFnxx: null, //定时器
				timeFnyy: null, //定时器
				lanname: '', //蓝牙名称json
				signalNmb: 0, //流速数量
				timeNub: '0', //秒表
				evennub: 0, //最大流速
				liusu: 0, //最小流速
				pointVelocity: [], //测线点流速
				startMeasure: false, //开始测量
				measuringArr: [], //测线数组
				historyDetails: {}, //历史记录详情
				cexianCounter: 0, //测线计数器
				dianfa: 1, //测量几点法
				measuringXX: {
					name: '0',
					nub: '0'
				}, //横向测点
				measuringYY: {
					name: '0',
					nub: '0'
				}, //纵向测点
				devList: {}, //设备列表
				afterCalculationIF: false, //计算后上传
				jiakong: [],
				cezhanQk: '0', //流速仪距离铅鱼底
				signaVelocity: '0', //瞬时流速
				analogSignalIF: null, //模拟信号
				mfvIF: true, //处理信号
				processingSignal: [], //处理流速
				depthWater: [], //处理水深
				returnToTime: null, //返回原点
				xishu: 0.9, //多普勒系数
				xishuArr: [], //多普勒系数
				toolName: '', //测流车类型
				cezhanObj: {
					cexianlist: []
				},
				toolName: '', //类型名称
				originalName: '', //原始名称

			}
		},
		onShow() {
			this.lanname = this.vuex_devicename
			this.deviceId = this.vuex_deviceId
			this.getBLEDeviceServices()
			// 测站
			this.cezhanFn()
			// 测点点流速
			this.pointVelocity = this.vuex_pointVelocity
			uni.showLoading({
				mask: true,
				title: '连接设备中...'
			});
			setTimeout(() => {
				uni.hideLoading()
			}, 3000)
			// 断开设备
			uni.onBLEConnectionStateChange((res) => {
				// 该方法回调中可以用于处理连接意外断开等异常情况
				if (res.connected !== true) {
					console.log('意外断开');
					this.lanname = ''
					uni.$u.vuex('vuex_devicename', '')
					uni.$u.vuex('vuex_deviceId', '')
				}
			})
			// 计算测线
			this.positionMeasuringPoint()
			//设备列表
			this.deviceListFn()
		},
		onLoad(option) {
			this.toolName = option.toolName
			console.log('测流车类选择', this.toolName);
			this.dataFormat()
			this.handleAFewPointsOfMethod()
			uni.$u.vuex('vuex_pointVelocity', [])
			// 保持屏幕常亮
			uni.setKeepScreenOn({
				keepScreenOn: true
			});

		},
		onUnload() {
			console.log('卸载');
			//清除获取圈数
			clearInterval(this.timeFnxx)
			clearInterval(this.timeFnyy)
			clearInterval(this.returnToTime) //返回原点
			this.inquitimeFn() //删除多普勒定时器
			// 销毁语音
			SixUniTts.destroy()
		},
		mounted() {
			// 初始化
			SixUniTts.initSixUniTts(res => {})
		},
		methods: {
			// 横向返回
			horizontalReturn(){
				this.removefanhui = true
			},
			cinfconrefanhui(){
				if(this.yyNubAc == 0 || this.yyNubAc > 600 || this.yyNubAc <= 0.1){
					this.travelDistanceXX(0)
					this.removefanhui = false
				}else{
					uni.showToast({
						title: '设备未上升',
						icon: 'loading',
						mask: true,
						duration: 2000
					});
				}
				
				
			},
			infcanrefanhui(){
				this.removefanhui = false
			},
			// 处理数据格式计算数据 原始名称
			dataFormat() {
				let obj = this.vuex_cezhanInfo
				let elect = {}
				if (this.toolName == '单轨测流车') {
					elect = obj.duopuleche
					elect.cexianlist = obj.duopuleche.cexianList
				}
				if (this.toolName == '索道式测流车') {
					elect = obj.suodaoche
					elect.cexianlist = obj.suodaoche.cexianList
				}
				if (this.toolName == '轨道式测流车') {
					elect = obj.guidaoche
					elect.cexianlist = obj.guidaoche.cexianList
				}
				if (this.toolName == '计时计数器') {
					elect = obj.celiugan
					elect.cexianlist = obj.celiugan.cexianList
				}
				this.vuexCezhanInfo = elect
				this.originalName = obj.sfsId
				console.log('选择测量仪器', this.toolName);
				console.log('原始数据', obj);
				console.log('格式化数据', elect);
				console.log('原始名称', this.originalName);
			},
			// 测量数据父传子
			flowValueTransfer() {
				this.objFlowData.toolName = this.toolName
				this.objFlowData.wD = this.wD
				this.objFlowData.dotMethod = this.dianfa
				this.objFlowData.velocityOfFlow = this.pointVelocity
				this.objFlowData.flowRateList = this.measuringArr
				this.objFlowData.celiangfangshi = 1
				console.log('this.objFlowData', this.objFlowData);
				setTimeout(() => {
					this.$refs.myCDF.oNflowShowFn()
				}, 100)
			},
			// 调用父组件
			fatherMethod() {
				this.hiddenTrafficFn()
				console.log('调用父组件');
			},
			// 系数
			changeFn() {
				console.log('系数', this.jiakong, this.measuringArr);
			},
			// 测站信息
			cezhanFn() {
				// 配置
				if (uni.$u.test.isEmpty(this.vuex_cfgCeZhan)) {
					let obj = {
						installH: '', //安装高度
						rangeDifference: '', //铅鱼距离差
						thoroughH: {
							a: '',
							b: '',
							c: '',
						}, //入水深度
						waterH: '', //距离水面高度
						depthOfWater: '', //实际水深
						depthOfEntry: 0, //入水深度:
						heightOfWater: 0, //出水高度
						speedRatioXX: 0, //横向转速比
						speedRatioYY: 0, //纵向转速比
					}
					this.cfgCeZhan = obj
				} else {
					this.cfgCeZhan = this.vuex_cfgCeZhan
				}
				this.wD = (this.cfgCeZhan.depthOfWater) * 1
				// 测站
				let objList = this.vuexCezhanInfo
				let objACV = this.vuexCezhanInfo.cexianlist
				this.cezhanObj = objList
				for (let i = 0; i < objACV.length; i++) {
					objACV[i].color = 0
				}
				this.cezhanACV = objACV
			},
			// 处理几点法数据初始化
			handleAFewPointsOfMethod() {
				// 几点法
				this.dianfa = 1
				// this.dianfa = this.vuexCezhanInfo.morencefa
				if (uni.$u.test.isEmpty(this.vuex_lineRecord[0].a) && this.dianfa == 1) {
					this.initializeTheSurveyLineFn()
					return
				}
				if (!(uni.$u.test.isEmpty(this.vuex_lineRecord[0].a)) && this.dianfa == 3) {
					this.initializeTheSurveyLineFn()
					return
				}
				uni.$u.vuex('vuex_lineRecord', [])
				this.initializeTheSurveyLineFn()
			},
			// 为获取水深
			acquireFnBut() {
				// this.$refs.uNotify.show({
				// 	top: 30,
				// 	type: 'error',
				// 	color: '#ffffff',
				// 	bgColor: '#cb2b41',
				// 	message: '未连接水位计，请手动输入水深',
				// 	duration: 3000,
				// 	fontSize: 20,
				// 	safeAreaInsetTop: false
				// })
				this.inwaterFn()
			},
			// 初始化测线
			initializeTheSurveyLineFn() {
				this.jiakong = this.vuexCezhanInfo.cexianlist
				this.cezhanQk = 0
				// 测线条数
				let ceTiao = this.vuexCezhanInfo.cexianlist.length
				let arrList = []
				if (this.vuex_lineRecord.length == 0) {
					if (this.dianfa == 3) {
						for (let i = 0; i < ceTiao; i++) {
							let obj = {
								aveTy: 0,
								a: {
									time: '0',
									nub: '0',
									evenness: '0',
									liusu: '0'
								},
								b: {
									time: '0',
									nub: '0',
									evenness: '0',
									liusu: '0'
								},
								c: {
									time: '0',
									nub: '0',
									evenness: '0',
									liusu: '0'
								},
								status: 0,
								xishu: 0,
								junyundu: 0
							}
							arrList.push(obj)
						}
					} else if (this.dianfa == 1) {
						for (let i = 0; i < ceTiao; i++) {
							let obj = {
								aveTy: 0,
								b: '0',
								status: 0,
								time: '0',
								nub: '0',
								evenness: '0',
								xishu: 0,
								junyundu: 0
							}
							arrList.push(obj)
						}
					}
					this.measuringArr = arrList
					console.log(arrList);
					uni.$u.vuex('vuex_lineRecord', arrList)
					// 循环测线
					this.cexianCounter = 0
				} else {
					this.measuringArr = this.vuex_lineRecord
					// 循环测线
					let linaArr = this.vuex_lineRecord
					if (this.dianfa == 1) {
						for (let i = 0; i < linaArr.length; i++) {
							if (linaArr[i].aveTy != 0) {
								this.cexianCounter++
							}
						}
					}
					if (this.dianfa == 3) {
						for (let i = 0; i < linaArr.length; i++) {
							if (linaArr[i].a.liusu != 0) {
								this.cexianCounter++
							}
							if (linaArr[i].b.liusu != 0) {
								this.cexianCounter++
							}
							if (linaArr[i].c.liusu != 0) {
								this.cexianCounter++
							}
						}
					}

				}
			},
			// 清空测线数据
			clearLineFn() {
				uni.$u.vuex('vuex_lineRecord', [])
				this.initializeTheSurveyLineFn()
				// 计算测线
				this.positionMeasuringPoint()
			},
			// 电量
			// 电池样式
			batteryStyleFn() {
				let brake = ['0x06', '0x04', '0x00', '0x02', '0x00', '0x01', '0x91', '0xBD']
				this.conbuffer(brake)
			},
			electricQuantityFn() {
				if (this.percentage > 70) {
					this.activeColor = this.activeColorA
				}
				if (this.percentage > 40 && this.percentage <= 70) {
					this.activeColor = this.activeColorB
				}
				if (this.percentage > 20 && this.percentage <= 40) {
					this.activeColor = this.activeColorC
				}
				if (this.percentage <= 20) {
					this.activeColor = this.activeColorD
				}
			},
			// // 语音播报
			sixFn() {
				let broadcast = '测量位置' + ',' + this.measuringXX.name + '号测线' + ',' + '测点' + this.measuringYY.name + ',' +
					'均匀度,' + this.junyundu + ',' + '有效流速,' + this.timeNub
				// 设置音调
				SixUniTts.setSpeechRate({
					pitch: '0.8f'
				})
				// 设置语速
				SixUniTts.setSpeechRate({
					rate: '1.0f'
				})
				SixUniTts.startSpeech({
					speechText: broadcast
				})
			},
			sixErrFn() {
				let broadcast = '数据异常，请重新测量！'
				// 设置音调
				SixUniTts.setSpeechRate({
					pitch: '1.0f'
				})
				// 设置语速
				SixUniTts.setSpeechRate({
					rate: '1.0f'
				})
				SixUniTts.startSpeech({
					speechText: broadcast
				})
			},
			// 进度条
			progressBarFn() {
				this.percentageNub -= 2
				if (this.percentageNub <= 40 && this.percentageNub > 20) {
					this.actiColor = '#ffff00'
				}
				if (this.percentageNub <= 20) {
					this.actiColor = '#ff0800'
				}
			},
			// 信号灯
			continuityFn() {
				if (this.isActive == false) {
					this.music.play_didi()
					this.isActive = true
					setTimeout(() => {
						this.isActive = false
					}, 200)
				}
			},
			// 生成1到10之间的随机整数
			getRandomInt(min, max) {
				return Math.floor(Math.random() * (max - min + 1)) + min;
			},
			// 模拟添加数据
			analogSignalAdd() {
				this.lineToArrayFn()
				this.cexianCounter++
			},
			// 计算设备出水
			equipmentEffluent() {
				let nub = this.measuringXX.name * 1 - 1
				// let objnub = (this.cezhanObj.cexianlist[nub].bC * 1 - (this.cfgCeZhan.depthOfWater) * 1 - 0.1).toFixed(2)  出水
				let objnub = (this.cezhanObj.cexianlist[nub].bC * 1 + this.vuexCezhanInfo.liusuyiHeight*1 + this.cfgCeZhan.depthOfEntry * 1 - (this.cfgCeZhan
					.depthOfWater) * 1 - this.cfgCeZhan.heightOfWater * 1).toFixed(2) //出水
				if (this.dianfa == 3) {
					console.log('保存次数', this.cexianCounter);
					if (this.cexianCounter % 3 == 0) {
						let nub = this.measuringXX.name * 1 - 2
						let objnub = (this.cezhanObj.cexianlist[nub].bC * 1 - (this.cfgCeZhan.depthOfWater) * 1 - this
								.cfgCeZhan.heightOfWater * 1)
							.toFixed(2)
						this.measuringYY.nub = objnub
						this.automaticMeasurement = false //自动测量上升
						this.travelDistanceYY()
						setTimeout(() => {
							this.travelDistanceYY()
						}, 1500)
					} else {
						this.automaticMeasurement = true //自动测量上升
						this.travelDistanceYY()
						setTimeout(() => {
							this.travelDistanceYY()
						}, 1500)
					}
				} else {
					this.measuringYY.nub = objnub
					this.travelDistanceYY()
					setTimeout(() => {
						this.travelDistanceYY()
					}, 1500)
				}
			},
			// 保存点流速
			holdPointVelocityFn() {
				this.cexianCounter++
				if (this.dianfa == 3) {
					if (this.cexianCounter == this.cezhanObj.cexianlist.length * 3) {
						this.saveIF = false
					} else {
						this.saveIF = false
						this.flowCheckpop = false
					}
				} else {
					if (this.cexianCounter == this.cezhanObj.cexianlist.length) {
						this.saveIF = false
					} else {
						this.saveIF = false
						this.flowCheckpop = false
					}
				}
				// 计算流量
				this.lineToArrayFn()
				// 计算测线
				this.positionMeasuringPoint()
				// 设备出水
				setTimeout(() => {
					if (this.dianfa == 3) {
						if (this.cexianCounter >= this.cezhanObj.cexianlist.length * 3) {
							this.cinfconZero()
						} else {
							this.equipmentEffluent()
						}
					} else {
						if (this.cexianCounter >= this.cezhanObj.cexianlist.length) {
							// this.cinfconZero()
							this.equipmentEffluent()
						} else {
							this.equipmentEffluent()
						}
					}
				}, 500)
			},
			// 保存测线到数组
			lineToArrayFn() {
				let arr = this.measuringArr
				uni.$u.vuex('vuex_lineRecord', arr)
				if (this.dianfa == 3) {
					for (let i = 0; i < arr.length; i++) {
						if (arr[i].status == 0) {
							arr[i].status = 1
							arr[i].a.liusu = this.timeNub //有效流速
							arr[i].a.time = this.evennub //最大
							arr[i].a.nub = this.liusu //最小
							arr[i].a.evenness = this.evennub
							arr[i].a.xishu = this.cfgCeZhan.xishu //系数
							return
						}
						if (arr[i].status == 1) {
							if (arr[i].b.liusu == 0) {
								arr[i].b.liusu = this.timeNub //有效流速
								arr[i].b.time = this.evennub //最大
								arr[i].b.nub = this.liusu //最小
								arr[i].b.evenness = this.evennub
								arr[i].b.xishu = this.cfgCeZhan.xishu //系数
							} else {
								arr[i].status = 2
								arr[i].c.liusu = this.timeNub //有效流速
								arr[i].c.time = this.evennub //最大
								arr[i].c.nub = this.liusu //最小
								arr[i].c.evenness = this.evennub
								arr[i].c.xishu = this.cfgCeZhan.xishu //系数
								arr[i].aveTy = ((arr[i].a.liusu * 1 + arr[i].b.liusu * 1 + arr[i].c.liusu * 1) / 3)
									.toFixed(3)
							}
							return
						}
					}
				} else {
					for (let i = 0; i < arr.length; i++) {
						if (arr[i].status == 0) {
							arr[i].b = this.liusu * 1 + 0.01 //最小流速
							arr[i].status = 1
							arr[i].aveTy = this.timeNub //有效流速
							arr[i].time = this.timeNub
							arr[i].nub = this.signalNmb
							arr[i].evenness = this.evennub //最大流速
							arr[i].xishu = this.cfgCeZhan.xishu //系数
							arr[i].junyundu = this.junyundu //均匀度
							return
						}
					}
				}

				this.measuringArr = arr
			},
			// 测线位置和测点
			positionMeasuringPoint() {
				let arr = this.measuringArr
				if (this.dianfa == 1) {
					for (let i = 0; i < arr.length; i++) {
						if (arr[i].b == '0') {
							this.calculatedDistanceFn(this.cezhanObj.cexianlist[i].bC, i, this.cezhanObj.cexianlist[i].zJ)
							return
						}
					}
				}
				if (this.dianfa == 3) {
					let arr = this.measuringArr
					for (let i = 0; i < arr.length; i++) {
						if (arr[i].aveTy == 0) {
							if (arr[i].a.liusu == 0 || arr[i].a.liusu == '') {
								this.calculatedThreeFn(this.cezhanObj.cexianlist[i].bC, i, this.cezhanObj.cexianlist[i].zJ,
									this.cfgCeZhan.thoroughH.a * 1, 'A')
								return
							}
							if (arr[i].b.liusu == 0 || arr[i].b.liusu == '') {
								this.calculatedThreeFn(this.cezhanObj.cexianlist[i].bC, i, this.cezhanObj.cexianlist[i].zJ,
									this.cfgCeZhan.thoroughH.b * 1, 'B')
								return
							}
							if (arr[i].c.liusu == 0 || arr[i].c.liusu == '') {
								this.calculatedThreeFn(this.cezhanObj.cexianlist[i].bC, i, this.cezhanObj.cexianlist[i].zJ,
									this.cfgCeZhan.thoroughH.c * 1, 'C')
								return
							}

						}
					}
				}
			},
			// 3点法计算距离
			calculatedThreeFn(data, index, mubm, thhh, sty) {
				// let nub = data * 1 - this.cfgCeZhan.depthOfWater * 1 + thhh + this.cfgCeZhan.rangeDifference * 1
				let nub = data * 1 - this.cfgCeZhan.depthOfWater * 1 + thhh + this.vuexCezhanInfo.liusuyiHeight * 1
				console.log('*************', this.cfgCeZhan.rangeDifference);
				this.measuringYY.name = sty
				this.measuringYY.nub = (nub * 1).toFixed(2)
				this.measuringXX.name = index * 1 + 1
				this.measuringXX.nub = (mubm * 1).toFixed(2)
			},
			// 1点法计算距离
			calculatedDistanceFn(data, index, mubm) {
				// let nub = data * 1 - this.cfgCeZhan.depthOfWater * 1 + this.cfgCeZhan.thoroughH.b * 1 + this.cfgCeZhan
				// 	.rangeDifference * 1
				let nub = data * 1 - this.cfgCeZhan.depthOfWater * 1 + this.cfgCeZhan.depthOfEntry * 1 + this
					.vuexCezhanInfo.liusuyiHeight * 1
				this.measuringYY.name = 'A'
				this.measuringYY.nub = (nub * 1).toFixed(2)
				this.measuringXX.name = index * 1 + 1
				this.measuringXX.nub = (mubm * 1).toFixed(2)
			},
			// 显示保存
			pointVelotyFn() {
				this.saveIF = true

			},
			// 计算流量
			calculatedFlowFn() {
				this.flowCheckpop = false
				this.flowRateIF = true
				setTimeout(() => {
					// this.calculateFlow()
					this.flowValueTransfer()
				}, 500)
				// 设备返回
			},
			// 关闭计算流量弹窗
			hiddenTrafficFn() {
				this.flowRateIF = false
			},
			// 保存流量
			saveTrafficFn() {
				this.flowRateIF = false
				let day = dayjs(new Date()).format('YYYY-MM-DD HH:mm')
				let arr = this.vuex_flowHistory
				let obj = {
					id: this.nanoid(),
					name: this.cezhanObj.name,
					time: day,
					dianfa: this.dianfa,
					liusliangnub: this.liusliangnub,
					wD: this.wD,
					measuringArr: this.measuringArr
				}
				arr.unshift(obj)
				uni.$u.vuex('vuex_flowHistory', arr)
			},
			// 求和
			sum(arr) {
				var sum = 0;
				for (var i = 0; i < arr.length; i++) {
					sum += arr[i]
				}
				return sum
			},
			//返回测量
			returnMeasurement() {
				this.startMeasuringFn()
			},
			// 重新测量
			remeasureFn() {
				this.startMeasure = false
				this.startMeasuringFn()
				clearInterval(this.analogSignalIF) // 删除模拟
				this.inquitimeFn() //删除多普勒定时器
			},
			// 测量开始计时
			startMeasuringFn() {
				clearInterval(this.timeFnxx) // 询问脉冲
				clearInterval(this.timeFnyy) // 询问脉冲
				// 开始测量
				// 进度条
				this.percentageNub = 100
				this.actiColor = '#00ff00'
				setTimeout(() => {
					this.startMeasure = true
					this.inquiryFn()
				}, 3000)
				this.timeNub = '0' //有效流速
				console.log('测量--+++++++++++++++++++++++');
				// 保存测量
				this.saveIF = false
				//最大流速
				this.evennub = 0
				//最小流速
				this.liusu = 0
				// 信号均匀度线条
				this.inlineArr = []
				// 流速数量
				this.signalNmb = 0
				//瞬时流速
				this.signaVelocity = 0
				// 弹窗
				this.flowCheckpop = true
				// 处理数据
				this.mfvIF = true
				this.processingSignal = [] //处理流速
			},
			//询问水深
			inwaterFn() {
				uni.showToast({
					title: '正在获取水深',
					icon: 'loading',
					mask: true,
					duration: 6000
				});
				this.depthWater.length = 0
				let arr = ['0x03', '0x03', '0x00', '0x02', '0x00', '0x01', '0x24', '0x28']
				for (let i = 0; i < 10; i++) {
					setTimeout(() => {
						this.conbuffer(arr)
					}, i * 500)
				}

			},
			// 多普勒定时器
			inquitimeFn() {
				clearTimeout(this.duopsett)
				clearInterval(this.duopsein)

			},
			// 模拟信号 数
			analogSignalNumber() {
				this.analogSignalIF = setInterval(() => {
					console.log('模拟定时器');
					if (this.mfvIF) {
						// this.mfvFn(this.getRandomNumber(1025, 1399))
						this.continuityFn()
					}

				}, 500)
			},
			//询问多普勒
			inquiryFn() {
				let arr = ['0x04', '0x04', '0x00', '0x00', '0x00', '0x04', '0xF1', '0x9C']

				// for (let i = 0; i < 102; i++) {
				// 	setTimeout(() => {
				// 		this.conbuffer(arr)
				// 		// this.mfvFn(this.getRandomNumber(1025, 1399))
				// 		this.continuityFn()
				// 	}, i * 1000)
				// }

				this.inquitimeFn() //删除多普勒定时器
				this.duopsein = setInterval(() => {
					this.conbuffer(arr)
					this.continuityFn() //信号灯
					// this.mfvFn(this.getRandomNumber(1025, 1399))  //模拟
				}, 1000);
				this.duopsett = setTimeout(() => {
					this.inquitimeFn()
				}, 53000)
			},

			// 获取测流数据
			mfvFn(data) {
				let num = ((data / 1000) * this.cfgCeZhan.xishu).toFixed(3)
				// let num = (this.getRandomNumber(530,930)/1000).toFixed(3)
				if (this.inlineArr.length < 50 && this.mfvIF) {
					this.progressBarFn() //进度条
					this.inlineArr.push(num)
					this.processingSignal.push(num)
					this.signaVelocity = num //实时数据
					// 最大值
					this.evennub = this.getMax(this.inlineArr).toFixed(3)
					// 最小值
					this.liusu = this.getMin(this.inlineArr).toFixed(3)
					console.log('信号长度', this.inlineArr.length, this.getMax(this.inlineArr));
				} else if (this.mfvIF) {
					this.mfvIF = false
					let arr = this.processingSignal
					let nexArr = this.processingSignal
					this.removeSmallestN(arr, 10) //删除最小的
					this.removeMax(arr, 10) //删除最大的
					this.timeNub = this.averageSum(arr).toFixed(3)
					this.junyundu = this.evennessFn(this.inlineArr)
					console.log(this.averageSum(arr).toFixed(3));
					this.pointVelotyFn()
					this.sixFn()
				}
			},
			// 计算后上传
			trafficuploadTrafficFn() {
				this.showupload = true
				// 计算后上传
				this.afterCalculationIF = true
			},
			// 上传数据
			trafficuploadFn() {
				this.showupload = true
				this.afterCalculationIF = false
			},
			confirmuploadFn(e) {
				this.showupload = false

				this.devList.name = this.cezhanObj.name
				this.devList.time = dayjs(new Date()).format('YYYY-MM-DD HH:mm')
				this.devList.dianfa = this.dianfa
				this.devList.liusliangnub = this.liusliangnub
				this.devList.wD = this.wD

				this.uploadHistoryFn(e.value[0].id)
				// 保存本地
				this.saveTrafficFn()

				// if (this.afterCalculationIF) {
				// 	this.saveTrafficFn()
				// }
			},
			canceluploadFn() {
				this.showupload = false
			},
			// 上传历史记录
			uploadHistoryFn(data) {
				uni.$u.http.post('/device/device_reported_data/addDeviceReportData', {
					"did": data,
					"data": JSON.stringify(this.devList)
				}).then(res => {
					console.log(res);
					if (res.code == 200) {
						uni.showToast({
							title: '上传成功',
							duration: 1500
						});

					}
				}).catch(err => {
					console.log('错误', err);
				})
			},
			// 设备列表
			deviceListFn() {
				uni.$u.http.get('/device/device/geiCeLiuCheList').then(res => {
					if (res.code == 200) {
						this.columns = []
						let arr = []
						arr = res.rows.map((i) => {
							return {
								label: i.nickName,
								id: i.id,
							}
						})
						this.columns.push(arr)
					}
				}).catch(err => {
					console.log('错误', err);
				})
			},
			// 点击测线
			measuringLineFn(i, index) {
				setTimeout(() => {
					this.batteryStyleFn() //电量
				}, 3000)
				this.positionMeasuringPoint() //测线计算
				this.automaticMeasurement = true //自动测量下降
				this.travelDistanceXX(i.zJ)
				if (this.cezhanACV[index].color == 0) {
					this.cezhanACV[index].color = 1
					this.$forceUpdate()
					return
				}
				if (this.cezhanACV[index].color == 1) {
					this.cezhanACV[index].color = 2
					this.$forceUpdate()
					return
				}
			},
			// 确认
			confirmFn() {
				uni.$u.vuex('vuex_cfgCeZhan', this.cfgCeZhan)
				this.wD = (this.cfgCeZhan.depthOfWater) * 1
				console.log('水深', this.wD);
				// 计算测线
				this.positionMeasuringPoint()
				this.showpop = false
			},
			// 处理水深测点系数
			chanWdInput() {

				this.cfgCeZhan.thoroughH.a = (this.cfgCeZhan.depthOfWater * 0.2).toFixed(2)
				// this.cfgCeZhan.thoroughH.a = (this.cfgCeZhan.depthOfWater * 0.2).toFixed(2)
				this.cfgCeZhan.thoroughH.b = 0.2
				this.cfgCeZhan.thoroughH.c = (this.cfgCeZhan.depthOfWater * 0.8).toFixed(2)

			},
			// 初始化
			iniIFFn() {
				// if (this.wD <= 0 || this.wD == null) {
				// 	uni.showToast({
				// 		title: '未输入水深',
				// 		duration: 1500
				// 	});

				// 	return
				// }
				this.infIF = true
			},

			// 初始化电机确定
			cinfconfirmIF() {
				this.infIF = false
				this.returnToZeroFn() //归零初始化
				this.clearLineFn()
			},
			// 初始化电机取消
			infcancelIF() {
				this.infIF = false
			},
			// 脉冲清零归零模式
			returnToZeroFn() {
				uni.showToast({
					title: '正在初始化...',
					icon: 'loading',
					mask: true,
					duration: 10000
				});
				this.inquitimeFn() //删除多普勒定时器
				clearInterval(this.returnToTime) //返回原点
				// 驱动器上电初始化
				let ini = ['0x01', '0x06', '0x60', '0x40', '0x00', '0x01', '0x57', '0xDE']
				// 驱动器正常运行，但电机未使能，松开刹车
				let brakeDel = ['0x01', '0x06', '0x60', '0x40', '0x00', '0x03', '0xD6', '0x1F']
				// 电机给电，处于可运行状态
				let electric = ['0x01', '0x06', '0x60', '0x40', '0x00', '0x0F', '0xD6', '0x1A']
				// 设置回零模式 01 06 60 60 00 06 17 D6
				let hpos = ['0x01', '0x06', '0x60', '0x60', '0x00', '0x06', '0x17', '0xD6']
				// 设定回零方式 01 10 60 7C 00 08 10 00 00 03 E8 00 01 00 00 00 64 03 E8 00 00 00 64
				let hposTop = ['0x01', '0x10', '0x60', '0x7C', '0x00', '0x08', '0x10', '0x00', '0x00', '0x03', '0xE8',
					'0x00', '0x01', '0x00', '0x00', '0x00', '0x64', '0x03', '0xE8', '0x00', '0x00', '0x00', '0x64',
					'0x0D', '0xBE'
				]
				// 开始归零
				let startToZero = ['0x01', '0x06', '0x60', '0x40', '0x00', '0x1F', '0xD7', '0xD6']
				// 暂停归零
				let pauseToZero = ['0x01', '0x06', '0x60', '0x40', '0x01', '0x1F', '0xD6', '0x46']
				this.conbuffer(ini)
				setTimeout(() => {
					this.conbuffer(brakeDel)
				}, 300)
				setTimeout(() => {
					this.conbuffer(electric)
				}, 600)
				setTimeout(() => {
					this.conbuffer(hpos)
				}, 900)
				setTimeout(() => {
					this.conbuffer(hposTop)
				}, 1200)
				setTimeout(() => {
					this.conbuffer(startToZero)
				}, 1500)
				setTimeout(() => {
					this.conbuffer(pauseToZero)
				}, 1800)
				setTimeout(() => {
					this.verticalZeroingYY()
				}, 2100)
			},
			// 纵向归零
			verticalZeroingYY() {
				// 驱动器上电初始化
				let ini = ['0x02', '0x06', '0x60', '0x40', '0x00', '0x01', '0x57', '0xED']
				// 驱动器正常运行，但电机未使能，松开刹车
				let brakeDel = ['0x02', '0x06', '0x60', '0x40', '0x00', '0x03', '0xD6', '0x2C']
				// 电机给电，处于可运行状态
				let electric = ['0x02', '0x06', '0x60', '0x40', '0x00', '0x0F', '0xD6', '0x29']
				// 设置回零模式 01 06 60 60 00 06 17 D6
				let hpos = ['0x02', '0x06', '0x60', '0x60', '0x00', '0x06', '0x17', '0xE5']
				// 设定回零方式 01 10 60 7C 00 08 10 00 00 03 E8 00 01 00 00 00 64 03 E8 00 00 00 64
				let hposTop = ['0x02', '0x10', '0x60', '0x7C', '0x00', '0x08', '0x10', '0x00', '0x00', '0x03', '0xE8',
					'0x00', '0x01', '0x00', '0x00', '0x00', '0x64', '0x03', '0xE8', '0x00', '0x00', '0x00', '0x64',
					'0x59', '0x5B'
				]
				// 开始归零
				let startToZero = ['0x02', '0x06', '0x60', '0x40', '0x00', '0x1F', '0xD7', '0xE5']
				// 暂停归零
				let pauseToZero = ['0x02', '0x06', '0x60', '0x40', '0x01', '0x1F', '0xD6', '0x75']
				this.conbuffer(ini)
				setTimeout(() => {
					this.conbuffer(brakeDel)
				}, 300)
				setTimeout(() => {
					this.conbuffer(electric)
				}, 600)
				setTimeout(() => {
					this.conbuffer(hpos)
				}, 900)
				setTimeout(() => {
					this.conbuffer(hposTop)
				}, 1200)
				setTimeout(() => {
					this.conbuffer(startToZero)
				}, 1500)
				setTimeout(() => {
					this.conbuffer(pauseToZero)
				}, 1800)
				setTimeout(() => {
					this.iniFn()
				}, 2100)
			},
			//初始化电机
			iniFn() {
				this.xxNubAc = 0
				this.yyNubAc = 0
				clearInterval(this.timeFnxx)
				clearInterval(this.timeFnyy)
				// “驱动器上电初始化”
				let initialize = ['0x01', '0x06', '0x60', '0x40', '0x00', '0x01', '0x57', '0xDE']
				// “驱动器正常运行，但电机未使能，松开刹车”
				let releaseTheBrake = ['0x01', '0x06', '0x60', '0x40', '0x00', '0x03', '0xD6', '0x1F']
				// “电机给电，处于可运行状态”
				let motorFeeding = ['0x01', '0x06', '0x60', '0x40', '0x00', '0x0F', '0xD6', '0x1A']
				// “设置位置模式”
				let positionMode = ['0x01', '0x06', '0x60', '0x60', '0x00', '0x01', '0x56', '0x14']
				// 设置点位参数
				let pointParameter = ['0x01', '0x10', '0x60', '0x81', '0x00', '0x04', '0x08', '0x00', '0x00', '0x00',
					'0xC8', '0x00', '0x64', '0x00', '0x64', '0x69', '0x83'
				]
				this.conbuffer(initialize)
				setTimeout(() => {
					this.conbuffer(releaseTheBrake)
				}, 300)
				setTimeout(() => {
					this.conbuffer(motorFeeding)
				}, 600)
				setTimeout(() => {
					this.conbuffer(positionMode)
				}, 900)
				setTimeout(() => {
					this.conbuffer(pointParameter)
				}, 1200)
				setTimeout(() => {
					this.longitudinalMachine()
				}, 1500)
			},
			// 初始化纵向电机
			longitudinalMachine() {
				// “驱动器上电初始化”
				let initialize = ['0x02', '0x06', '0x60', '0x40', '0x00', '0x01', '0x57', '0xED']
				// “驱动器正常运行，但电机未使能，松开刹车”
				let releaseTheBrake = ['0x02', '0x06', '0x60', '0x40', '0x00', '0x03', '0xD6', '0x2C']
				// “电机给电，处于可运行状态”
				let motorFeeding = ['0x02', '0x06', '0x60', '0x40', '0x00', '0x0F', '0xD6', '0x29']
				// “设置位置模式”
				let positionMode = ['0x02', '0x06', '0x60', '0x60', '0x00', '0x01', '0x56', '0x27']
				// 设置点位参数
				let pointParameter = []
				if (this.originalName == '18' || this.originalName == '12') {
					pointParameter = ['0x02', '0x10', '0x60', '0x81', '0x00', '0x04', '0x08', '0x00', '0x00', '0x01',
						'0x2C', '0x00', '0x16', '0x00', '0x16', '0x7B', '0x7B'
					]
				} else {
					pointParameter = ['0x02', '0x10', '0x60', '0x81', '0x00', '0x04', '0x08', '0x00', '0x00', '0x00',
						'0xFA', '0x00', '0x16', '0x00', '0x16', '0x33', '0x78'
					]
				}
				this.conbuffer(initialize)
				setTimeout(() => {
					this.conbuffer(releaseTheBrake)
				}, 300)
				setTimeout(() => {
					this.conbuffer(motorFeeding)
				}, 600)
				setTimeout(() => {
					this.conbuffer(positionMode)
				}, 900)
				setTimeout(() => {
					this.conbuffer(pointParameter)
				}, 1200)
			},
			// 计算横向行走距离
			travelDistanceXX(i) {
				if (this.cfgCeZhan.speedRatioYY == '' || this.cfgCeZhan.speedRatioXX == '') {
					uni.showToast({
						title: '未填写完整',
						icon: 'loading',
						mask: true,
						duration: 1000
					});
					return
				}
				this.transversePulse()
				let numI = i
				let nub = (numI * 1 / this.cfgCeZhan.speedRatioXX * 20 * 10000).toFixed(0)
				console.log('横向----', this.cfgCeZhan.speedRatioXX, nub);
				// let nub = (numI * 1 / 0.3 * 20 * 10000).toFixed(0) infinity
				let hexnub = this.decimalToHex(nub)
				let hexcrc = '0110607A000204' + this.strRepair(hexnub, 8)
				let crcStr = hexcrc + this.crc16(hexcrc)[1] + this.crc16(hexcrc)[0]
				let arrto = this.chunkStringByTwo(crcStr)
				let hexArr = this.ocstr(arrto)

				// “设置目标位置为”
				let targetPosition = hexArr
				// 采集新位置并运行”
				let locationRun = ['0x01', '0x06', '0x60', '0x40', '0x00', '0x1F', '0xD7', '0xD6']
				// 此处可先将控制字位 4 置 0，便于下一次快速采位
				let controlWordBit = ['0x01', '0x06', '0x60', '0x40', '0x00', '0x0F', '0xD6', '0x1A']
				// 给蓝牙传输
				this.conbuffer(targetPosition)
				setTimeout(() => {
					this.conbuffer(locationRun)
				}, 300)
				setTimeout(() => {
					this.conbuffer(controlWordBit)
				}, 600)
			},
			// 计算纵向行走距离
			travelDistanceYY() {
				if (this.cfgCeZhan.speedRatioYY == '' || this.cfgCeZhan.speedRatioXX == '') {
					uni.showToast({
						title: '未填写完整',
						icon: 'loading',
						mask: true,
						duration: 1000
					});
					return
				}
				this.longitudinalPulse()
				console.log('iiii', this.measuringYY.nub);
				let numI = this.measuringYY.nub
				let nub = (numI * 1 * 10000 / 0.015 * this.cfgCeZhan.speedRatioYY).toFixed(0)
				let hexnub = this.decimalToHex(nub)
				let hexcrc = '0210607A000204' + this.strRepair(hexnub, 8)
				let crcStr = hexcrc + this.crc16(hexcrc)[1] + this.crc16(hexcrc)[0]
				let arrto = this.chunkStringByTwo(crcStr)
				let hexArr = this.ocstr(arrto)

				console.log('脉冲yy', hexArr);

				// “设置目标位置为”
				let targetPosition = hexArr
				// 01 06 60 40 00 1F D7 D6 采集新位置并运行”
				let locationRun = ['0x02', '0x06', '0x60', '0x40', '0x00', '0x1F', '0xD7', '0xE5']
				// 01 06 60 40 00 0F D6 1A 此处可先将控制字位 4 置 0，便于下一次快速采位
				let controlWordBit = ['0x02', '0x06', '0x60', '0x40', '0x00', '0x0F', '0xD6', '0x29']

				// 给蓝牙传输
				this.conbuffer(targetPosition)
				setTimeout(() => {
					this.conbuffer(locationRun)
				}, 300)
				setTimeout(() => {
					this.conbuffer(controlWordBit)
				}, 600)
			},
			// 查询横向脉冲
			transversePulse() {
				clearInterval(this.timeFnxx)
				this.timeFnxx = setInterval(() => {
					this.aLLBrakeFnxx()
					console.log('执行------');
					if (this.measuringXX.nub == 0) {
						if (this.xxNubAc == this.measuringXX.nub || this.xxNubAc > 600) {
							clearInterval(this.timeFnxx)
						}
					}
					if (this.measuringXX.nub > 0) {
						if (this.xxNubAc == this.measuringXX.nub || this.xxNubAc > 600) {
							clearInterval(this.timeFnxx)
						}
					}

				}, 1000)
			},
			// 查询纵向脉冲
			longitudinalPulse() {
				clearInterval(this.timeFnyy)
				this.timeFnyy = setInterval(() => {
					this.aLLBrakeFnyy()
					console.log('执行++++++');
					if (this.measuringYY.nub == 0) {
						if (this.yyNubAc == this.measuringYY.nub || this.yyNubAc > 600) {
							clearInterval(this.timeFnyy)
						}
					}
					if (this.measuringYY.nub > 0) {
						if (this.yyNubAc == this.measuringYY.nub || this.yyNubAc > 600) {
							clearInterval(this.timeFnyy)
							// 自动测量 
							if (this.automaticMeasurement) {
								this.startMeasuringFn()
								this.automaticMeasurement = false
							}
						}
					}
				}, 1000)

			},
			// 紧急暂停
			emergencySuspension() {
				let locationRunA = ['0x01', '0x06', '0x60', '0x40', '0x01', '0x0F', '0xD7', '0x8A']
				let locationRunB = ['0x02', '0x06', '0x60', '0x40', '0x01', '0x0F', '0xD7', '0xB9']
				// 给蓝牙传输
				this.conbuffer(locationRunA)
				setTimeout(() => {
					this.conbuffer(locationRunB)
				}, 300)
			},
			// 横向电机状态
			negativeXXFn() {
				// 电机状态
				let brakeb = ['0x01', '0x03', '0x60', '0x41', '0x00', '0x01', '0xCA', '0x1E']
				this.conbuffer(brakeb)
			},
			// 返回初始点
			cinfconZero() {
				this.measuringXX.nub = 0
				this.measuringYY.nub = 0
				this.inquitimeFn() //删除多普勒定时器
				this.travelDistanceYY()
				setTimeout(() => {
					this.travelDistanceYY()
				}, 1500)
				setTimeout(() => {
					this.travelDistanceYY()
				}, 3000)
				this.transversePulse() //横向脉冲
				clearInterval(this.returnToTime) //返回原点
				this.returnToTime = setInterval(() => {
					if (this.yyNubAc == 0 || this.yyNubAc > 600 || this.yyNubAc <= 0.05) {
						this.travelDistanceXX(0)
						setTimeout(()=>{
							this.negativeXXFn() //询问横向电机状态
						},900)
					}
				}, 1200)
				this.infZero = false
			},
			// 手动上升
			manualAscent() {
				this.measuringYY.nub = 0
				this.travelDistanceYY()
			},
			// 手动下降
			manualDescent() {
				this.travelDistanceYY()
			},
			infcanZero() {
				this.infZero = false
			},
			// 返回原点
			returnToOriginFn() {
				this.infZero = true
			},
			// 下降测量
			descentMeasurementFn() {
				this.travelDistanceYY()
			},
			// 询问横向地址脉冲圈数
			aLLBrakeFnxx() {
				let brake = ['0x01', '0x03', '0x60', '0x64', '0x00', '0x02', '0x9B', '0xD4']
				this.conbuffer(brake)
			},
			// 询问纵向地址脉冲圈数
			aLLBrakeFnyy() {
				let brake = ['0x02', '0x03', '0x60', '0x64', '0x00', '0x02', '0x9B', '0xE7']
				this.conbuffer(brake)
			},
			// 输入框计算
			changeInputFn() {
				this.calculateFlow()
			},
			// 计算流量
			calculateFlow() {
				let vls = this.measuringArr
				// let vls = [{
				// 	aveTy: "0.972"
				// }, {
				// 	aveTy: "1.089"
				// }, {
				// 	aveTy: "1.061"
				// }, {
				// 	aveTy: "1.053"
				// }, {
				// 	aveTy: "1.042"
				// }, {
				// 	aveTy: "1.049"
				// }, {
				// 	aveTy: "1.004"
				// }, {
				// 	aveTy: "0.928"
				// }, {
				// 	aveTy: "0.955"
				// }, ]
				// console.log('vls', vls);
				let vlAll = []
				let vl0 = null //区域流量
				let vl1 = null //区域流量
				let vlz = null //区域流量
				let vln = null //区域流量
				let vln1 = null //区域流量
				let vln2 = null //区域流量

				// 不参与循环
				// cot
				let sin27LL = Math.sin(this.cezhanObj.lSA * Math.PI / 180)
				let cos27LL = Math.cos(this.cezhanObj.lSA * Math.PI / 180)
				let areaLL = cos27LL / sin27LL //三角面积L

				let sin27RR = Math.sin(this.cezhanObj.rSA * Math.PI / 180)
				let cos27RR = Math.cos(this.cezhanObj.rSA * Math.PI / 180)
				let areaRR = cos27RR / sin27RR //三角面积R
				// VL0
				vl0 = 0.5 * this.wD * this.wD * areaLL * (vls[0].aveTy * 1) * (this.cezhanObj.kL * 1)
				vlAll.push(vl0.toFixed(6) * 1)
				console.log('vl0', vl0);


				//VL1
				vl1 = 0.5 * [(vls[0].aveTy * 1) + (vls[0].aveTy * 1)] * (this.wD) * (this.cezhanObj.cexianlist[0].cR * 1)
				vlAll.push(vl1.toFixed(6) * 1)
				console.log('vl1', vl1);

				// 中间逻辑
				if (vls.length > 1) {
					for (let i = 0; i < vls.length - 1; i++) {
						vlz = 0.5 * [(vls[i].aveTy * 1) + (vls[i + 1].aveTy * 1)] * (this.wD) * [(this.cezhanObj
							.cexianlist[i + 1].cR * 1) - (this.cezhanObj.cexianlist[i].cR *
							1)]
						vlAll.push(vlz.toFixed(6) * 1)
					}
				}

				//VLN+1
				vln1 = 0.5 * [(vls[vls.length - 1].aveTy * 1) + (vls[vls.length - 1]
					.aveTy * 1)] * (this.wD) * [(this
					.cezhanObj.qudikuandu * 1) - (this.cezhanObj.cexianlist[vls.length - 1].cR * 1)]
				vlAll.push(vln1.toFixed(6) * 1)
				console.log('vln1+++', vln1, this.wD, vlAll, this
					.cezhanObj.qudikuandu);


				//VLN+2
				vln2 = 0.5 * this.wD * this.wD * areaRR * (vls[vls.length - 1].aveTy * 1) * (this.cezhanObj.kR * 1)
				vlAll.push(vln2.toFixed(6) * 1)
				console.log('vln2', vln2, areaRR);
				// 计算总平均流速
				let vlQitem = []
				let vlQArr = []
				let vlQALL = []

				let sum = 0;
				for (let i = 0; i < vlAll.length; i++) {
					sum += vlAll[i];
				}
				this.liusliangnub = sum.toFixed(3) * 1
				console.log('流量数组', vlAll);
				console.log('流量', sum.toFixed(3) * 1);
			},
			// 配置
			allocationFn() {
				this.showpop = true
			},
			//弹窗配置
			// 返回
			retFn() {
				this.showIF = true
			},
			// 是否返回
			confirmIF() {
				uni.navigateBack({
					delta: 1
				});
				this.showIF = false
			},
			cancelIF() {
				this.showIF = false
			},
			confirmflowCheckpopFn() {
				this.flowCheckpop = false
			},
			// 历史记录遮罩
			// 测量类型
			layFn(item) {
				if (item == '本地历史记录') {
					this.flowRecordingIF = true
					this.flowRecordingArr = this.vuex_flowHistory
				}
				if (item == '网络历史记录') {
					//在起始页面跳转到test.vue页面并传递参数 JSON.stringify(arr) 
					uni.navigateTo({
						url: '/pages/currentMeasuringCar/historicalRecord'
					});

				}
			},
			// 历史流量
			flowRecordingFn() {
				// 遮罩 
				this.showSlot = true
			},
			hiddenRecordingFn() {
				this.flowRecordingIF = false
			},
			// 历史记录详情
			trafficDetailsFn() {
				this.trafficDetailsIF = false
			},
			clicDetailsIF(i) {
				this.historyDetails = i
				// let obj = i
				// obj.measuringArr = obj.measuringArr.length
				this.devList.name = i.name
				this.devList.time = i.time
				this.devList.dianfa = i.dianfa
				this.devList.liusliangnub = i.liusliangnub
				this.devList.wD = i.wD
				this.trafficDetailsIF = true
			},
			// 删除历史记录
			removeRecording(id) {
				this.removeRecorID = id
				this.removeIF = true
			},
			// 删除确定
			cinfconremoveIF() {
				let arr = this.removeById(this.flowRecordingArr, this.removeRecorID)
				uni.$u.vuex('vuex_flowHistory', arr)
				this.removeIF = false
			},
			// 删除取消
			infcanremoveIF() {
				this.removeIF = false
			},
			// 输入蓝牙数据
			conbuffer(data) {
				let msg = data
				// 向蓝牙设备发送一个0x00的16进制数据
				const buffer = new ArrayBuffer(msg.length)
				const dataView = new DataView(buffer)
				// dataView.setUint8(0, 0)
				for (var i = 0; i < msg.length; i++) {
					// dataView.setUint8(i, msg.charAt(i).charCodeAt())
					dataView.setUint8(i, msg[i]);
				}
				this.sendMsgToKey(buffer)
			},
			//监听消息变化++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
			listenValueChange(data) {
				let resHex = data
				setTimeout(() => {
					uni.onBLECharacteristicValueChange(res => {
						let resHex = this.ab2hex(res.value)
						console.log('监听数据', resHex, resHex.length);
						// 询问横向电机状态
						if (resHex.substr(6, 4) == '1237') {
							clearInterval(this.returnToTime) //返回原点
						}
						// 询问水深
						if (resHex.substr(0, 6) == '030302' && resHex.length == 14) {
							let str = resHex.substr(6, 4)
							let nubm = this.hexToDecimal(str) / 100
							this.depthWater.push(nubm)
							// this.wD = nubm / 100
							if (this.depthWater.length == 10) {
								let arr = this.depthWater
								this.removeSmallestN(arr, 5)
								this.removeMax(arr, 4)
								console.log('询问水深', arr[0]);
								this.cfgCeZhan.depthOfWater = arr[0]
								this.wD = this.cfgCeZhan.depthOfWater
								this.chanWdInput()
							}
						}
						// 获取流速
						if (resHex.substr(0, 6) == '040408' && resHex.length == 26) {
							let str = resHex.substr(14, 4)
							this.mfvFn(this.hexToDecimal(str))
						}
						//获取电压
						if (resHex.substr(0, 6) == '060402' && resHex.length == 14) {
							let str = resHex.substr(6, 4)
							let strNum = this.hexToDecimal(str) + ''
							let strDis = (strNum.substr(0, 2) + '.' + strNum.substr(2, 2)) * 1
							let nubV = (((strDis - 46) / 8).toFixed(2)) * 100
							this.voltage = (strDis * 1).toFixed(1)
							if (nubV >= 100) {
								this.percentage = 100
							}
							if (nubV <= 0) {
								this.percentage = 0
							}
							if (nubV > 0 && nubV < 100) {
								this.percentage = nubV.toFixed(0)
							}
							// 提示电量低
							if (nubV < 35) {
								uni.showToast({
									icon: 'error',
									title: '电量低...',
									duration: 5000
								});
							}

							this.electricQuantityFn()
							console.log('strA', strNum, nubV);
						}
						// 获取脉冲xx
						if (resHex.substr(0, 6) == '010304' && resHex.length == 18) {
							let str = resHex.substr(6, 8)
							this.xxNubAc = (this.hexToDecimal(str) / 10000 / 20 * this.cfgCeZhan
								.speedRatioXX).toFixed(2)
						}
						// 获取脉冲yy
						if (resHex.substr(0, 6) == '020304' && resHex.length == 18) {
							let str = resHex.substr(6, 8)
							this.yyNubAc = (this.hexToDecimal(str) / 10000 / 1 * 0.015 / this.cfgCeZhan
								.speedRatioYY).toFixed(2)
							// console.log('圈数距离', this.hexToDecimal(str) / 10000 / 50);
						}
					})
				}, 300)
			},
			//获取蓝牙的所有服务
			getBLEDeviceServices() {
				setTimeout(() => {
					uni.getBLEDeviceServices({
						// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
						deviceId: this.vuex_deviceId,
						success: (res) => {
							console.log('获取蓝牙所有服务', res);
							//E95D93AF-251D-470A-A062-FA1922DFA9A8
							//6E400001-B5A3-F393-E0A9-E50E24DCCA9E
							res.services.forEach((item) => {
								if (item.uuid.indexOf("0000FFF0") != -1) {
									this.serviceId = item.uuid;
									//获取特征
									this.getBLEDeviceCharacteristics()
								}
								if (item.uuid.indexOf("0000FFE0") != -1) {
									this.serviceId = item.uuid;
									//获取特征
									this.getBLEDeviceCharacteristics()
								}
								if (item.uuid.indexOf("00001000") != -1) {
									this.serviceId = item.uuid;
									//获取特征
									this.getBLEDeviceCharacteristics()
								}
							})
						}
					})
				}, 1000)
			},
			//获取蓝牙特征
			getBLEDeviceCharacteristics() {
				console.log('获取蓝牙特征值');
				setTimeout(() => {
					uni.getBLEDeviceCharacteristics({
						// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
						deviceId: this.deviceId,
						// 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取
						serviceId: this.serviceId,
						success: (res) => {
							this.characteristics = res.characteristics
							res.characteristics.forEach((item) => {

								if (item.uuid.indexOf("FFF2") != -1) {
									this.fff = item.uuid

								}
								if (item.uuid.indexOf("FFE1") != -1) {
									this.fff = item.uuid

								}
								if (item.uuid.indexOf("0000FFE1") != -1) {

									this.characteristicId = item.uuid
									//利用传参的形势传给下面的notify，这里的uuid如果都需要用到，就不用做判断了，建议使用setTimeout进行间隔性的调用此方法
									this.notifyBLECharacteristicValueChange(item.uuid)
								}
								if (item.uuid.indexOf("0000FFF1") != -1) {
									this.characteristicId = item.uuid
									this.notifyBLECharacteristicValueChange(item.uuid)
								}
								// EW-DTU02
								if (item.uuid.indexOf("00001001") != -1) {
									this.fff = item.uuid
								}
								if (item.uuid.indexOf("00001002") != -1) {
									this.characteristicId = item.uuid
									this.notifyBLECharacteristicValueChange(item.uuid)
								}
							})
						},
						fail: (res) => {
							console.log(res)
						}
					})
				}, 1000)
			},
			// 数组
			arraySum(arr) {
				let sum = 0;
				for (let i = 0; i < arr.length; i++) {
					sum += arr[i];
				}
				return sum;
			},
			// 删除最小的前面几个数字
			removeSmallestN(arr, n) {
				// 对数组进行升序排序
				const sorted = arr.sort((a, b) => a - b);
				// 删除最前面的n个数字
				sorted.splice(0, n);
				return sorted;
			},
			// 删除最大的后面几个数字
			removeMax(arr, n) {
				// 对数组进行升序排序
				const sorted = arr.sort((a, b) => a - b);
				// 删除最后面的n个数字
				sorted.splice(-n);
				return sorted;
			},
			// 10进制转32位二进制补码
			NumberOf1(num) {
				// 获取负数的绝对值
				const absoluteValue = Math.abs(num);

				// 将绝对值转换为32位二进制字符串
				let binaryString = absoluteValue.toString(2);

				// 确保二进制字符串长度为32位
				while (binaryString.length < 32) {
					binaryString = '0' + binaryString;
				}

				// 对二进制字符串取反
				const invertedBinaryString = binaryString.split('').map(bit => bit === '0' ? '1' : '0').join('');

				// 将取反后的二进制字符串转换为数字并加1
				const twosComplement = parseInt(invertedBinaryString, 2) + 1;

				// 再次将补码转换为32位二进制字符串
				binaryString = twosComplement.toString(2);
				// 确保二进制字符串长度为32位
				while (binaryString.length < 32) {
					binaryString = '0' + binaryString;
				}

				return binaryString;
			},
			// 二进制补码转16进制
			binaryToHex(binaryStr) {
				// 确保二进制字符串是32位
				if (binaryStr.length !== 32) {
					throw new Error('Binary string must be 32 bits long');
				}

				// 将二进制字符串转换为数字
				var number = parseInt(binaryStr, 2);

				// 转换为16进制并返回结果
				return number.toString(16);
				// 示例使用
				// var binaryStr = '010101010101010101010101010101010'; // 32位二进制补码
				// var hexStr = binaryToHex(binaryStr);
			},
			//数组求平均
			averageSum(arr) {
				if (arr.length === 0) {
					return 0; // 当数组为空时，平均值为0
				}

				let sum = 0;
				for (let i = 0; i < arr.length; i++) {
					sum += arr[i] * 1;
				}

				return sum / arr.length;
			},
			// 长度不够补0
			strRepair(str, nub) {
				let nubm = nub * 1
				let strif = str + ''
				if (strif.length < nubm) {
					for (let i = 0; i < nubm - str.length; i++) {
						strif = '0' + strif
					}
				}
				return strif
			},
			//给每个数组添加0x
			ocstr(data) {
				let arr = []
				for (let i = 0; i < data.length; i++) {
					data[i] = '0x' + data[i]
				}
				return data
			},
			// 每2个字符串为一个元素数组
			chunkStringByTwo(str) {
				const result = [];
				for (let i = 0; i < str.length; i += 2) {
					result.push(str.slice(i, i + 2));
				}
				return result;
			},
			// 处理ASCLL 30 -00
			ascllFn(data) {
				let str = data + ''
				let arr = this.chunkStringByTwo(str)

				for (let i = 0; i < arr.length; i++) {
					if (arr[i] == '00') {
						arr[i] = '30'
					}
				}
				let arrnew = arr

				let strnre = ''
				for (let i = 0; i < arrnew.length; i++) {
					strnre += arrnew[i]
				}
				return strnre
			},
			// CRC16校验
			crc16(dataHexString) {
				const dataBytes = [];
				for (let i = 0; i < dataHexString.length; i += 2) {
					dataBytes.push(parseInt(dataHexString.substr(i, 2), 16));
				}

				let crc = 0xFFFF;
				const polynomial = 0xA001;

				for (const byte of dataBytes) {
					crc ^= byte;
					for (let i = 0; i < 8; i++) {
						if (crc & 0x0001) {
							crc = ((crc >> 1) ^ polynomial) & 0xFFFF;
						} else {
							crc >>= 1;
						}
					}
				}
				let crcstr = crc.toString(16).toUpperCase();
				if (crcstr.length % 2 == 0) {
					let result = crcstr.match(/.{1,2}/g)
					return result;
				} else {
					let str = '0' + crcstr
					let result = str.match(/.{1,2}/g)
					return result;
				}
			},
			// 16进制转10进制
			hexToDecimal(hex) {
				return parseInt(hex, 16);
			},
			// 10进制转16进制
			decimalToHex(data) {
				let decimal = data * 1
				let hex = decimal.toString(16).toUpperCase();
				3
				if (hex.length % 2 !== 0) {
					return '0' + hex
				} else {
					return hex
				}
				// return decimal.toString(16).toUpperCase();
			},
			// 16进制转字符串 ASCII码
			hexToString(hex) {
				let str = '';
				for (let i = 0; i < hex.length; i += 2) {
					let charCode = parseInt(hex.substr(i, 2), 16);
					str += String.fromCharCode(charCode);
				}
				return str;
			},

			//字符串转16进制
			stringToHex(data) {
				let str = data + ''
				return str.split('').map(function(char) {
					return char.charCodeAt(0).toString(16).padStart(2, '0');
				}).join('');
			},
			// 16进制转汉字
			hexToChinese(hex) {
				var str = '';
				for (var i = 0; i < hex.length / 4; i++) {
					var codePoint = parseInt(hex.substr(i * 4, 4), 16); // 获取每四位的十六进制值并转换成十进制
					str += String.fromCharCode(codePoint); // 根据Unicode编码生成对应的字符
				}
				return str;
			},
			// 汉字转16进制
			convertToHex(str) {
				let result = '';
				for (let i = 0; i < str.length; i++) {
					result += str.charCodeAt(i).toString(16);
				}
				return result;
			},
			// 随机数
			getRandomNumber(min, max) {
				return Math.floor(Math.random() * (max - min + 1)) + min;
			},
			// 最大值
			getMax(arr) {
				return Math.max.apply(null, arr);
			},
			// 最小值
			getMin(arr) {
				if (arr.length === 0) return undefined; // 如果数组为空，返回undefined
				return Math.min(...arr); // 使用扩展运算符获取数组中的最小值
			},
			// 删除最小的前面几个数字
			removeSmallestN(arr, n) {
				// 对数组进行升序排序
				const sorted = arr.sort((a, b) => a - b);
				// 删除最前面的n个数字
				sorted.splice(0, n);
				return sorted;
			},
			// 删除最大的后面几个数字
			removeMax(arr, n) {
				// 对数组进行升序排序
				const sorted = arr.sort((a, b) => a - b);
				// 删除最后面的n个数字
				sorted.splice(-n);
				return sorted;
			},
			// 均匀度
			evennessFn(data) {
				let arr = data
				let arli = []
				for (let i = 0; i < arr.length; i++) {
					arli[i] = arr[i] * 1000
				}
				// 均匀度
				let x = this.sum(arli) / arli.length
				let y = ''
				let z = []
				for (var i = 0; i < arli.length; i++) {
					y = (x - arli[i]) * (x - arli[i])
					z.push(y)
				}
				let n = this.sum(z) / arli.length
				let m = Math.sqrt(n) / 10

				return m.toFixed(0)

			},
			// ArrayBuffer转16进度字符串示例
			ab2hex(buffer) {
				const hexArr = Array.prototype.map.call(
					new Uint8Array(buffer),
					function(bit) {
						return ('00' + bit.toString(16)).slice(-2)
					}
				)
				return hexArr.join('')
			},
			/* 向设备发送消息(分包发送，单包20字节，递归发送)
			 */
			sendMsgToKey(buffer) {
				var that = this //vue中的this
				const packageSize = 20 //分包大小
				if (buffer.byteLength <= 20) { //如果小于20直接发送，不再继续调用
					uni.writeBLECharacteristicValue({
						// 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
						deviceId: that.deviceId,
						// 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
						serviceId: that.serviceId,
						// 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
						characteristicId: that.fff, //第二步写入的特征值
						// 这里的value是ArrayBuffer类型
						value: buffer,
						writeType: 'write',
						success: (res) => {
							//此时设备已接收到你写入的数据
							console.log('写入11111');

						},
						fail: (err) => {
							console.log('传输失败', err)
							this.lanname = this.vuex_devicename
						},
						complete: function() {}
					})
				} else { //如果大于20发送完成后继续递归调用
					var newData = buffer.slice(20)
					var writeBuffer = buffer.slice(0, 20)
					uni.writeBLECharacteristicValue({
						// 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
						deviceId: that.deviceId,
						// 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
						serviceId: that.serviceId,
						// 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
						characteristicId: that.fff, //第二步写入的特征值
						// 这里的value是ArrayBuffer类型
						value: writeBuffer,
						writeType: 'write',
						success: function(res) {
							console.log('写入22222');
							//写入后继续递归调用发送剩下的数据
							setTimeout(() => {
								that.sendMsgToKey(newData)
							}, 100)
						},
						fail: (err) => {
							this.lanname = this.vuex_devicename
							console.log('传输失败', err)
						},
						complete: function() {}
					})
				}
			},
			// 启用 notify 功能
			notifyBLECharacteristicValueChange(characteristicId) {
				console.log('启用 notify 功能');
				uni.notifyBLECharacteristicValueChange({
					state: true, // 启用 notify 功能
					// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
					deviceId: this.deviceId,

					// 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取
					serviceId: this.serviceId,
					// 这里的 characteristicId 需要在 getBLEDeviceCharacteristics 接口中获取
					characteristicId: this.characteristicId,
					success: (res) => {
						console.log('蓝牙名字', res);
						// vuex
						// uni.$u.vuex('vuex_devicename', this.vuexlist.name)
						uni.hideLoading()
						this.listenValueChange()
						uni.showToast({
							title: '设备已连接',
							mask: true,
							duration: 1000
						});
						setTimeout(() => {
							this.batteryStyleFn()
						}, 1000)
						console.log('蓝牙服务已开启');
					},
					fail: (res) => {
						uni.hideLoading()
						uni.showToast({
							title: '连接设备失败',
							icon: 'fail',
							mask: true,
							duration: 1000
						});

					}
				})
			},
			// 删除数组
			removeById(arr, id) {
				for (let i = 0; i < arr.length; i++) {
					if (arr[i].id === id) {
						arr.splice(i, 1);
						break;
					}
				}
				return arr;
			},
			// 生Id
			nanoid(size = 21) {
				let id = ''
				let i = size
				while (i--) {
					id += this.urlAlphabet[(Math.random() * 64) | 0]
				}
				return id
			},
			// 蓝牙
			tobelFn() {
				//在起始页面跳转到test.vue页面并传递参数
				uni.navigateTo({
					url: '/pages/index/devBEL'
				});

			},
			//断开连接
			lampRFn() {
				uni.closeBLEConnection({
					deviceId: this.vuex_deviceId,
					success: (res) => {
						uni.showToast({
							title: '设备已断开',
							icon: 'success',
							mask: true,
							duration: 1000
						});
						this.lanname = ''
						uni.$u.vuex('vuex_devicename', '')
					}
				})
			},
		}
	}
</script>
<style scoped lang="scss">
	// 历史记录遮罩
	.overlay-wrap {
		@include flex;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		flex: 1;

		.box_a {
			padding: 30rpx;
			margin: 30rpx;
			border-radius: 30rpx;
			border: 5rpx solid rgba(170, 255, 255, 0.5);
			color: #00ffe2;
			font-size: 60rpx;
			background-color: rgba(0, 0, 0, 0.9);
		}
	}

	// 内容
	.concent_box {
		padding: 0 30rpx 30rpx 30rpx;

		.inibox {
			margin: 20rpx 0;
			display: flex;
			align-items: center;
			justify-content: space-between;

			.inibox_but {
				width: 330rpx;
				text-align: center;
				color: #ffffff;
				font-size: 30rpx;
				padding: 20rpx 0;
				border-radius: 200rpx;
				background-color: #594e6f;
			}

			.inibox_in {
				width: 330rpx;

				.inibox_tt_a {
					text-align: center;
					color: #ffffff;
					font-size: 30rpx;
					padding: 20rpx 0;
					border-radius: 200rpx;
					background-color: #bd0000;
				}

				.inibox_tt_b {
					text-align: center;
					color: #ffffff;
					font-size: 30rpx;
					padding: 20rpx 0;
					border-radius: 200rpx;
					background-color: #00b457;
				}

				.inibox_ttacv {
					color: #ffffff;
					background-color: #d0d4d4;
				}
			}


			.inibox_acv {
				color: #ffffff;
				background-color: #d0d4d4;
			}


		}

		// 故障灯
		.lamp {
			display: flex;
			align-items: center;
			justify-content: space-between;
			padding: 0 30rpx;

			.lamp_l {
				width: 50rpx;
				height: 50rpx;
				border-radius: 100rpx;
				background-color: #00ff11;
				// border: 10rpx solid #77ff9e;
				box-shadow: inset 0 0 10rpx rgba(0, 0, 0, 0.3);
			}

			.lamp_r {
				width: 50rpx;
				height: 50rpx;
				border-radius: 100rpx;
				// background-color: #ff0000;
				background-color: #ddc7c7;
				box-shadow: inset 0 0 10rpx rgba(0, 0, 0, 0.3);
			}
		}

		.element_box {
			width: 690rpx;
			// height: 50rpx;
			border-radius: 20rpx;
			// background-color: #000000;
			display: flex;
			align-items: center;

			.u-percentage-slot {
				padding: 0 10rpx;
				font-size: 20rpx;
				display: flex;
				flex-wrap: nowrap;
				align-items: center;
				justify-content: center;
			}
		}




		.lamp_a {
			display: flex;
			align-items: center;
			justify-content: space-between;
			padding: 0 30rpx;

			.lamp_l_a {
				width: 50rpx;
				height: 50rpx;
				border-radius: 100rpx;
				background-color: #c2e2cc;
				box-shadow: inset 0 0 20rpx rgba(0, 0, 0, 0.3);
			}

			.lamp_r_a {
				width: 50rpx;
				height: 50rpx;
				border-radius: 100rpx;
				background-color: #ff0000;
				box-shadow: inset 0 0 20rpx rgba(0, 0, 0, 0.3);
			}
		}

		// 遥控器
		.remoteControlUnit {
			.box_list {
				display: flex;
				align-items: center;
				flex-wrap: wrap;
				font-size: 50rpx;

				.box_but {
					width: 170rpx;
					padding: 10rpx;
					border-radius: 10rpx;
					margin: 20rpx;
					color: #ffffff;
					text-align: center;
					background-color: #415f9d;
				}

				.box_but_acv {
					width: 170rpx;
					padding: 10rpx;
					border-radius: 10rpx;
					margin: 20rpx;
					color: #000000;
					text-align: center;
					background-color: #ffc107;
				}

				.box_but_rev {
					width: 170rpx;
					padding: 10rpx;
					border-radius: 10rpx;
					margin: 20rpx;
					color: #000000;
					text-align: center;
					// background-color: #ffc107;
					background-color: #9162d6;
				}
			}
		}

		// 归零测量按钮
		.return_oZero {
			display: flex;
			justify-content: space-around;
			align-items: center;

			.return_l {
				width: 260rpx;
				height: 260rpx;
				font-size: 70rpx;
				line-height: 90rpx;
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				border-radius: 300rpx;
				color: #ffffff;
				border: 15rpx solid #e2ddc9;
				background-color: #a29979;
			}

			.return_l_acv {
				background-color: #6d6651;
				box-shadow: inset 0 0 50rpx rgba(255, 244, 214, 1.0);
			}

			.return_r {
				width: 260rpx;
				height: 260rpx;
				font-size: 70rpx;
				line-height: 90rpx;
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				border-radius: 300rpx;
				color: #ffffff;
				border: 15rpx solid #98d1cb;
				background-color: #488c80;
			}

			.return_r_acv {
				background-color: #376c62;
				box-shadow: inset 0 0 50rpx rgba(126, 255, 189, 1.0);
			}
		}

		.realtime {
			display: flex;
			align-items: center;
			justify-content: space-around;
			font-size: 40rpx;
			padding: 30rpx;
			margin: 20rpx 0;
			background-color: #fafafa;
			border-radius: 20rpx;
			border: 3rpx solid #fff;
			padding: 10rpx;
			box-shadow: 0 0 15rpx rgba(127, 127, 127, 0.2);

			.i_a {
				color: #304951;
			}

			.i_b {
				font-size: 70rpx;
				text-align: center;
				border-radius: 10rpx;
				width: 260rpx;
				font-family: 'MyFont';
				background-color: #090e10;
				color: #33ff9e;
			}

			.i_c {
				margin-left: 20rpx;
				font-size: 40rpx;
			}
		}
	}

	// 配置参数
	.classpop {
		width: 690rpx;
		height: 1200rpx;
		overflow: auto;
		padding: 100rpx 30rpx;
		display: flex;
		flex-direction: column;

		.classpop_tit {
			font-size: 50rpx;
			margin: 0 auto;
			line-height: 100rpx;
			color: #5460a2;
			font-weight: bold;
		}

		.conpop {
			.popitem {
				margin-bottom: 10rpx;
				display: flex;
				align-items: center;
				justify-content: left;

				.poptext {
					width: 330rpx;
					text-align: justify;
					text-align-last: justify;
				}

				.poptext_inpp {
					width: 350rpx;
					display: flex;
					justify-content: space-between;
					align-items: center;

					.buty {
						width: 100rpx;
						margin-left: 20rpx;
					}
				}

				.poptext_flx {
					width: 320rpx;
					display: flex;
					justify-content: space-between;
					align-items: center;
					// padding: 0rpx 20rpx;
					font-size: 50rpx;
					color: #000000;
					border-radius: 10rpx;

					// background-color: #e2f1fa;
					.tex_l {
						width: 230rpx;
						text-align: center;
						border-radius: 10rpx;
						background-color: #daeaf3;
					}

					.tex_r {
						font-size: 35rpx;
						color: #5b5b5b;
					}
				}

				.poptext_a {
					width: 320rpx;
					text-align: justify;
					text-align-last: justify;
				}
			}

			.jiag_top {
				padding: 20rpx 0;
				font-size: 33rpx;
				// font-weight: bold;
				color: #000000;
				// text-align: center;
				background-color: #ffffff;

			}

			.jiag_bomm {
				// padding: 20rpx 0 10rpx 0;
				font-size: 45rpx;
				font-weight: bold;
				color: #5460a2;
				text-align: center;
				// background-color: #5460a2;
			}

			.scroll-view_H {
				width: 690rpx;
				white-space: nowrap;
				// background-color: #00b457;

				.jiag_flx {
					overflow: auto;
					display: flex;
					align-items: center;
					justify-content: space-between;
					color: #5460a2;

					.textbw {
						font-size: 30rpx;
						color: #ffffff;
						background-color: #5460a2;
					}

					.jiag_fnub {
						width: 140rpx;
						text-align: center;
						// background-color: #aa00ff;
					}

					// 		:nth-child(1) {
					// 			width: 80rpx;
					// 			text-align: center;
					// 			// background-color: #00ff11;
					// 		}

					// 		:nth-child(2) {
					// 			width: 80rpx;
					// 			text-align: center;
					// 			// background-color: #ffaa00;
					// 		}

					// 		:nth-child(3) {
					// 			width: 140rpx;
					// 			text-align: center;
					// 			// background-color: #ff5500;
					// 		}

				}

			}

			.jiag_tier {
				padding: 20rpx 0 10rpx 0;
				font-size: 45rpx;
				font-weight: bold;
				color: #5460a2;
				text-align: center;
				background-color: #ffffff;
			}

			.jiag_box {
				display: flex;
				align-items: center;
				justify-content: space-between;

				.jiag_it {
					width: 128rpx;
					padding: 0 5rpx;
					background-color: #5460a2;
					color: #ffffff;
					text-align: center;
					border-radius: 2rpx;
				}
			}

			.jiag_tit_fflx {
				display: flex;
				align-items: center;
				justify-content: space-between;

				.jiag_tit {
					font-size: 45rpx;
					font-weight: bold;
					color: #5460a2;
					text-align: center;
					background-color: #ffffff;
				}
			}


		}

		.butpop {
			margin-top: 30rpx;
			display: flex;
			align-items: center;
			justify-content: space-around;
		}
	}

	// 开始测量弹窗 历史记录
	.butflx {
		margin: 20rpx 0 150rpx 0;
		// display: flex;
		// align-items: center;
		// justify-content: center;
		// padding: 10rpx;
		// background-color: rgba(170, 255, 255, 0.3);
		// border: 5rpx solid #aaffff;
		// color: #aaffff;
		// text-align: center;
		// border-radius: 30rpx;
		// font-size: 50rpx;
		// margin-bottom: 50rpx;
	}


	// 上传数据
	.but_upload {
		margin-top: 20rpx;
	}

	.viewHistory {
		width: 700rpx;
		height: 1600rpx;
		overflow: auto;
		padding: 50rpx 30rpx 30rpx 30rpx;
		margin: 0 auto;
		background-color: #000000;


		.head_d {
			width: 700rpx;
			height: 150rpx;
			padding: 30rpx 0;
			display: flex;
			align-items: center;
			justify-content: space-around;
			// background-color: #00ff11;
			// font-family: 'MyFont';
			font-size: 35rpx;

			.yuan_a {
				width: 230rpx;
				padding: 10rpx;
				border-radius: 150rpx;
				display: flex;
				flex-direction: column;
				align-items: center;
				border: 10rpx solid rgba(255, 255, 255, 0.2);
				background-color: rgba(255, 255, 255, 0.1);

				.nub {
					font-size: 70rpx;

					.yang_texrt {
						// font-family: 'qingyuan';
					}
				}

				.linbox {
					background-color: #666666;
					width: 160rpx;
					height: 1rpx;
				}
			}

			.yuan_b {
				width: 50rpx;
				height: 50rpx;
				margin-bottom: 10rpx;
				border-radius: 50rpx;
				background-color: #00ff00;
				border: 10rpx solid #dfffcd;
				box-shadow: 0 0 50rpx rgba(102, 255, 0, 1.0);
			}

			.yuan_c {
				width: 50rpx;
				height: 50rpx;
				margin-bottom: 10rpx;
				border-radius: 50rpx;
				background-color: #2c3b0d;
				border: 10rpx solid #505a49;
				// box-shadow: 0 0 50rpx rgba(255, 226, 0, 1);
			}
		}

		// 时间线条
		.line_cla_box {
			border-radius: 20rpx;
			padding: 20rpx;
			border: 5rpx solid rgba(255, 255, 255, 0.2);
			background-color: rgba(255, 255, 255, 0.1);

			.line_cla {
				display: flex;
				flex-wrap: wrap;
				justify-content: center;
				align-items: flex-end;

				.line_a {
					width: 5rpx;
					height: 10rpx;
					border-radius: 5rpx;
					margin: 0.5px;
					background-color: rgba(190, 240, 0, 1);

				}
			}

			.junyun {
				display: flex;
				justify-content: space-between;
				align-items: center;
				// margin-top: 20rpx;
				padding: 10rpx 0;
				font-size: 35rpx;
				text-align: center;
				color: #000000;

				.junyun_a {
					width: 325rpx;
					border-radius: 20rpx;
					background-color: rgba(190, 240, 0, 1);
				}

				.junyun_b {
					width: 325rpx;
					border-radius: 20rpx;
					background-color: rgba(190, 240, 0, 1);
				}
			}
		}


		// 进度条
		.progress_bar {
			margin: 10rpx 0;
		}

		// 测线流量颜色
		.measuring_box {
			margin-bottom: 500rpx;

			.box_num {
				// display: flex;
				// align-items: center;
				// justify-content: space-between;
				// flex-wrap: wrap;
				padding: 10rpx;

				.num_i_box {
					// width: 320rpx;
					margin: 10rpx 0;
					background-color: rgba(71, 45, 1, 0.5);
					border-radius: 20rpx;
					border: 3rpx solid rgba(255, 195, 15, 1.0);
					padding: 10rpx;
					box-shadow: 0 0 20rpx rgba(255, 195, 15, 1.0);

					.text_top {

						.text {
							// margin-bottom: 10rpx;
							// display: flex;
							// justify-content: space-between;
							// align-items: center;

							// font-size: 30rpx;
							.text_fdlx {
								margin-top: 10rpx;
								padding: 10rpx;
								border-radius: 10rpx;
								display: flex;
								justify-content: space-between;
								align-items: center;
								// background-color: rgba(255, 195, 15, 1.0);

								color: rgba(255, 195, 15, 1.0);

								.text_a {
									width: 100rpx;
									text-align: center;
									color: rgba(255, 195, 15, 1.0);
								}

								.text_b {
									width: 130rpx;
									border-radius: 5rpx;
									color: rgba(255, 195, 15, 1.0);
									text-align: center;
								}

								.text_c {
									width: 130rpx;
									border-radius: 5rpx;
									color: rgba(0, 0, 0, 1.0);
									background-color: rgba(255, 195, 15, 1.0);
									text-align: center;
								}

							}

						}
					}

					.text_bom {
						// text-align: center;
						color: rgba(255, 195, 15, 1.0);
						font-size: 35rpx;
						// margin-bottom: 10rpx;
						display: flex;
						align-items: center;
						justify-content: space-between;

						.text_aaom {
							// color: rgba(0, 0, 0, 1.0);
						}

						.text_bbom {
							color: rgba(0, 0, 0, 1.0);
							border-radius: 5rpx;
							padding: 0rpx 10rpx;
							background-color: rgba(255, 195, 15, 1.0);
						}
					}
				}

				.num_i_nue {
					// width: 320rpx;
					margin: 10rpx 0;
					background-color: rgba(53, 71, 0, 0.2);
					border-radius: 20rpx;
					padding: 10rpx;
					border: 3rpx solid rgba(131, 255, 247, 1.0);
					box-shadow: 0 0 20rpx rgba(131, 255, 247, 1.0);

					.text_top {

						.text {
							// margin-bottom: 10rpx;
							// display: flex;
							// justify-content: space-between;
							// align-items: center;

							// font-size: 30rpx;
							.text_fdlx {
								margin-top: 10rpx;
								padding: 10rpx;
								border-radius: 10rpx;
								display: flex;
								justify-content: space-between;
								align-items: center;
								// background-color: rgba(131, 255, 247, 1.0);

								color: rgba(131, 255, 247, 1.0);

								.text_a {
									width: 100rpx;
									text-align: center;
									// color: rgba(0, 0, 0, 0.8);
								}

								.text_b {
									width: 130rpx;
									border-radius: 5rpx;
									// color: rgba(0, 0, 0, 1.0);
									// background-color: rgba(0, 0, 0, 1);
									text-align: center;
								}

								.text_c {
									width: 130rpx;
									border-radius: 5rpx;
									color: rgba(0, 0, 0, 1.0);
									background-color: rgba(131, 255, 247, 1.0);
									text-align: center;
								}
							}

						}
					}

					.text_bom {
						// text-align: center;
						color: rgba(255, 213, 0, 1.0);
						font-size: 30rpx;
						// margin-bottom: 10rpx;
						display: flex;
						align-items: center;
						justify-content: space-between;
						font-size: 35rpx;

						.text_aaom {
							// color: rgba(0, 0, 0, 1.0);
						}

						.text_bbom {
							color: rgba(0, 0, 0, 1.0);
							border-radius: 5rpx;
							padding: 0rpx 10rpx;
							background-color: rgba(150, 255, 144, 1.0);
						}
					}
				}

				.num_i_acv {
					// width: 320rpx;
					margin: 10rpx 0;
					background-color: rgba(53, 71, 0, 0.2);
					border-radius: 20rpx;
					padding: 10rpx;
					box-shadow: 0 0 20rpx rgba(156, 175, 185, 0.8);

					.text_top {

						.text {
							// margin-bottom: 10rpx;
							// display: flex;
							// justify-content: space-between;
							// align-items: center;

							// font-size: 30rpx;
							.text_fdlx {
								margin-top: 10rpx;
								padding: 10rpx;
								border-radius: 10rpx;
								display: flex;
								justify-content: space-between;
								align-items: center;
								// background-color: rgba(156, 175, 185, 0.8);

								color: rgba(156, 175, 185, 0.8);

								.text_a {
									width: 100rpx;
									text-align: center;
									color: rgba(156, 175, 185, 0.8);
								}

								.text_b {
									width: 130rpx;
									border-radius: 5rpx;
									color: rgba(156, 175, 185, 0.8);
									// background-color: rgba(0, 0, 0, 1);
									text-align: center;
								}

								.text_c {
									width: 130rpx;
									border-radius: 5rpx;
									color: rgba(0, 0, 0, 0.8);
									background-color: rgba(156, 175, 185, 0.8);
									text-align: center;
								}
							}

						}
					}

					.text_bom {
						// text-align: center;
						color: rgba(255, 213, 0, 0.5);
						font-size: 35rpx;
						// margin-bottom: 10rpx;
						display: flex;
						align-items: center;
						justify-content: space-between;

						.text_aaom {
							// color: rgba(0, 0, 0, 1.0);
						}

						.text_bbom {
							color: rgba(0, 0, 0, 1.0);
							border-radius: 5rpx;
							padding: 0rpx 10rpx;
							background-color: rgba(156, 175, 185, 0.8);
						}
					}
				}
			}
		}
	}

	.junyunddd {
		display: flex;
		justify-content: space-between;
		align-items: center;

		.junyun {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: space-around;
			// margin-top: 20rpx;
			padding: 10rpx 0;
			font-size: 40rpx;
			text-align: center;
			color: #000000;
			margin: 0 auto;

			.jun_a {
				font-size: 70rpx;
				color: rgba(190, 240, 0, 1);
			}

			.jun_b {
				font-weight: bold;
				font-size: 50rpx;
				color: rgba(190, 240, 0, 1);
				border-top: 2rpx solid rgba(103, 132, 82, 0.5);
			}

			.junyun_a {
				width: 350rpx;
				border-radius: 50rpx;
				background-color: rgba(190, 240, 0, 1);
			}

			.junyun_b {
				width: 350rpx;
				margin-top: 20rpx;
				border-radius: 50rpx;
				background-color: rgba(190, 240, 0, 1);
			}
		}
	}

	// 计算流量
	.viewHistory_flow_rate {
		width: 700rpx;
		height: 1600rpx;
		overflow: auto;
		padding: 50rpx 30rpx 30rpx 30rpx;
		margin: 0 auto;
		background-color: #000000;

		// 测线
		.measuringLine {
			.box_num {
				display: flex;
				align-items: center;
				justify-content: space-between;
				flex-wrap: wrap;

				.num_i {
					width: 320rpx;
					margin: 10rpx 0;
					background-color: rgba(54, 71, 0, 0.5);
					border-radius: 20rpx;
					border: 3rpx solid rgba(170, 255, 0, 1);
					padding: 10rpx;
					box-shadow: 0 0 20rpx rgba(170, 255, 0, 1);

					.text_top {

						// font-family: 'MyFont';
						.text {
							margin-bottom: 5rpx;
							display: flex;
							justify-content: space-between;
							align-items: center;
							font-size: 30rpx;

							.text_a {
								color: rgba(170, 255, 0, 1);
							}

							.text_b {
								color: #000000;
								text-align: center;
								width: 160rpx;
								border-radius: 10rpx;
								background-color: rgba(170, 255, 0, 1);
							}
						}
					}

					.text_bom {
						text-align: center;
						color: rgba(255, 170, 0, 1.0);
						font-size: 35rpx;
					}
				}
			}

			// 流量
			.depth_water {
				display: flex;
				align-items: center;
				justify-content: space-between;
				font-size: 60rpx;
				margin: 20rpx 0;
				border-radius: 10rpx;
				color: rgba(0, 0, 0, 1.0);
				border: 5rpx solid rgba(0, 255, 0, 1.0);
				background-color: rgba(0, 255, 0, 1.0);

				.water_a {
					width: 200rpx;
					text-align: center;

				}

				.water_b {
					display: flex;
					align-items: center;
					justify-content: space-between;
					width: 450rpx;
					border-radius: 10rpx;
					background-color: #000000;
					padding: 5rpx 15rpx;

					.water_c {
						padding: 0 10px;
						color: rgba(0, 255, 0, 1.0);
					}
				}

			}

			.depth_water_a {
				display: flex;
				align-items: center;
				justify-content: space-between;
				font-size: 60rpx;
				margin: 20rpx 0;
				border-radius: 10rpx;
				color: rgba(0, 0, 0, 1.0);
				border: 5rpx solid rgba(0, 255, 0, 1.0);
				background-color: rgba(0, 255, 0, 1.0);

				.water_a {
					width: 200rpx;
					text-align: center;

				}

				.water_b {
					display: flex;
					align-items: center;
					justify-content: space-between;
					width: 450rpx;
					border-radius: 10rpx;
					background-color: #000000;
					padding: 5rpx 15rpx;

					.water_c {
						padding: 0 10px;
						color: rgba(0, 255, 0, 1.0);
					}
				}

			}
		}
	}

	// 历史流量
	.viewHistory_flow_rate_history {
		width: 700rpx;
		height: 1600rpx;
		overflow: auto;
		padding: 50rpx 30rpx 30rpx 30rpx;
		margin: 0 auto;
		background-color: #000000;

		// 测线
		.measuringLine {
			.box_num {
				display: flex;
				align-items: center;
				justify-content: space-between;
				flex-wrap: wrap;

				.num_i {
					width: 320rpx;
					margin: 10rpx 0;
					border-radius: 20rpx;
					border: 3rpx solid rgba(170, 255, 0, 1.0);
					padding: 10rpx;
					box-shadow: 0 0 20rpx rgba(170, 255, 0, 1.0);

					.text_top {
						.dianfa {
							font-size: 40rpx;
							text-align: center;
							border-radius: 10rpx;
							margin-bottom: 10rpx;
							color: rgba(170, 255, 0, 1.0);
							// background-color: rgba(170, 255, 0, 1.0);

						}

						.text {
							margin-bottom: 5rpx;
							display: flex;
							justify-content: space-between;
							align-items: center;
							font-size: 30rpx;

							.text_a {
								color: rgba(170, 255, 0, 1.0);
							}

							.text_b {
								color: #000000;
								text-align: center;
								width: 200rpx;
								border-radius: 10rpx;
								background-color: rgba(170, 255, 0, 1.0);
							}
						}
					}

					.text_bom {
						text-align: center;
						color: rgba(170, 255, 0, 1.0);
						font-size: 35rpx;
					}
				}

				.num_i_acv {
					width: 320rpx;
					margin: 10rpx 0;
					border-radius: 20rpx;
					border: 3rpx solid rgba(255, 255, 0, 1.0);
					padding: 10rpx;
					box-shadow: 0 0 20rpx rgba(255, 255, 0, 1.0);

					.text_top {

						.dianfa {
							font-size: 40rpx;
							text-align: center;
							border-radius: 10rpx;
							margin-bottom: 10rpx;
							color: rgba(255, 255, 0, 1.0);
							// background-color: rgba(255, 255, 0, 1.0);

						}

						.text {
							margin-bottom: 5rpx;
							display: flex;
							justify-content: space-between;
							align-items: center;
							font-size: 30rpx;

							.text_a {
								color: rgba(255, 255, 0, 1.0);
							}

							.text_b {
								color: #000000;
								text-align: center;
								width: 200rpx;
								border-radius: 10rpx;
								background-color: rgba(255, 255, 0, 1.0);
							}
						}
					}

					.text_bom {
						text-align: center;
						color: rgba(255, 255, 0, 1.0);
						font-size: 35rpx;
					}
				}
			}
		}
	}

	.butflx_fggh {
		// width: 330rpx;
	}

	//历史纪律详情
	.measuring_box_details {
		width: 700rpx;
		height: 1600rpx;
		overflow: auto;
		padding: 50rpx 30rpx 30rpx 30rpx;
		margin: 0 auto;
		background-color: #000000;

		.flx_butflx {
			display: flex;
			align-items: center;
			justify-content: space-between;
			margin-bottom: 100rpx;
		}

		.box_pp {
			display: flex;
			align-items: flex-end;
			justify-content: center;
			color: #ffff00;
			// background-color: #ffff00;
			border-radius: 20rpx;
			font-size: 50rpx;
		}

		.box_num {
			// display: flex;
			// align-items: center;
			// justify-content: space-between;
			// flex-wrap: wrap;

			.num_i_nue {
				// width: 320rpx;
				margin: 10rpx 0;

				border-radius: 20rpx;
				padding: 10rpx;
				box-shadow: 0 0 20rpx rgba(255, 255, 0, 1.0);

				.text_top {
					background-color: rgba(255, 255, 0, 1.0);
					border-radius: 20rpx;

					.text {
						// margin-bottom: 10rpx;
						// display: flex;
						// justify-content: space-between;
						// align-items: center;

						// font-size: 30rpx;
						.text_fdlx {
							margin-top: 10rpx;
							padding: 10rpx;
							border-radius: 10rpx;
							display: flex;
							justify-content: space-between;
							align-items: center;
							background-color: rgba(255, 255, 0, 1.0);

							color: rgba(255, 255, 0, 1.0);

							.text_a {
								width: 100rpx;
								text-align: center;
								color: rgba(0, 0, 0, 0.8);
							}

							.text_b {
								width: 130rpx;
								border-radius: 5rpx;
								background-color: rgba(0, 0, 0, 1);
								text-align: center;
							}
						}

					}
				}

				.text_bom {
					// text-align: center;
					color: rgba(255, 255, 0, 1.0);
					font-size: 30rpx;
					// margin-bottom: 10rpx;
					display: flex;
					align-items: center;
					justify-content: space-between;

					.text_aaom {
						// color: rgba(0, 0, 0, 1.0);
					}

					.text_bbom {
						color: rgba(0, 0, 0, 1.0);
						border-radius: 5rpx;
						padding: 0rpx 10rpx;
						background-color: rgba(255, 255, 0, 1.0);
					}
				}
			}
		}

		.box_ff {
			margin: 20rpx 0;
			font-family: 'MyFont';
			font-size: 60rpx;
			color: rgba(255, 255, 0, 1.0);
			border-radius: 20rpx;
			border: 3rpx solid rgba(255, 255, 0, 1.0);
			padding: 10rpx;
			box-shadow: 0 0 20rpx rgba(255, 255, 0, 1.0);
		}

	}

	.measuring_box_details_acv {
		width: 700rpx;
		height: 1600rpx;
		overflow: auto;
		padding: 50rpx 30rpx 30rpx 30rpx;
		margin: 0 auto;
		background-color: #000000;

		.flx_butflx {
			display: flex;
			align-items: center;
			justify-content: space-between;
			margin-bottom: 100rpx;
		}

		.box_pp {
			display: flex;
			align-items: flex-end;
			justify-content: center;
			color: #00ff00;
			// background-color: #00ff00;
			border-radius: 20rpx;
			font-size: 50rpx;
		}

		.box_num {
			display: flex;
			align-items: center;
			justify-content: space-between;
			flex-wrap: wrap;

			.num_i_nue {
				width: 320rpx;
				margin: 10rpx 0;
				border-radius: 20rpx;
				border: 3rpx solid rgba(0, 255, 0, 1.0);
				padding: 10rpx;
				box-shadow: 0 0 20rpx rgba(0, 255, 0, 1.0);

				.text_top {

					.text {
						// margin-bottom: 10rpx;


						// font-size: 30rpx;
						.text_fdlx {
							margin-top: 10rpx;
							border: 2rpx solid rgba(0, 255, 0, 1.0);
							border-radius: 10rpx;
							display: flex;
							justify-content: space-between;
							align-items: center;

							.text_a {
								text-align: center;
								width: 100rpx;
								color: rgba(0, 255, 0, 1.0);
							}

							.text_b {
								width: 200rpx;
								border-radius: 5rpx;
								background-color: rgba(0, 255, 0, 1.0);
								color: #000000;
								text-align: center;
							}
						}

					}
				}

				.text_bom {
					// text-align: center;
					color: rgba(0, 255, 0, 1.0);
					font-size: 30rpx;
					// margin-bottom: 10rpx;
					display: flex;
					align-items: center;
					justify-content: space-between;

					.text_aaom {
						// color: rgba(0, 0, 0, 1.0);
					}

					.text_bbom {
						color: rgba(0, 0, 0, 1.0);
						border-radius: 5rpx;
						padding: 0rpx 10rpx;
						background-color: rgba(0, 255, 0, 1.0);
					}
				}
			}
		}

		.box_ff {
			margin: 20rpx 0;
			font-family: 'MyFont';
			font-size: 60rpx;
			color: rgba(0, 255, 0, 1.0);
			border-radius: 20rpx;
			border: 3rpx solid rgba(0, 255, 0, 1.0);
			padding: 10rpx;
			box-shadow: 0 0 20rpx rgba(0, 255, 0, 1.0);
		}

	}

	.tophead {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 60rpx 20rpx 10rpx 20rpx;
		color: #000000;
		background-color: #f3f3f3;
	}



	// 行走圈数
	.real_box {
		font-size: 40rpx;
		padding: 30rpx;
		margin: 20rpx 0;
		background-color: #fafafa;
		border-radius: 50rpx;
		border: 3rpx solid #fff;
		padding: 10rpx;
		box-shadow: 0 0 15rpx rgba(127, 127, 127, 0.2);

		.real_flx {
			display: flex;
			align-items: center;
			justify-content: space-between;
			color: #000000;

			.real_l {
				font-size: 45rpx;

				.buttn {
					padding: 15rpx;
					border-radius: 50rpx;
					display: flex;
					justify-content: space-around;
					align-items: center;
					background-color: #eabb5d;

					.img {
						width: 50rpx;
						height: 50rpx;
						// margin-right: 20rpx;
					}
				}
			}

			.real_l_a {
				font-size: 45rpx;

				.buttn {
					padding: 15rpx;
					border-radius: 50rpx;
					display: flex;
					justify-content: space-around;
					align-items: center;
					background-color: #52c8ab;

					.img {
						width: 50rpx;
						height: 50rpx;
						// margin-right: 20rpx;
					}
				}
			}

			.real_r {
				width: 260rpx;
				text-align: left;
				border-radius: 10rpx;
				padding: 10rpx;
				// font-family: 'MyFont';
				background-color: #000000;
				color: #ffcc65;
			}

			.real_r_r {
				width: 260rpx;
				border-radius: 10rpx 50rpx 50rpx 20rpx;
				padding: 10rpx 20rpx;
				// font-family: 'MyFont';
				background-color: #152024;
				color: #ffcc65;
			}

			.real_r_a {
				width: 260rpx;
				text-align: left;
				border-radius: 10rpx;
				padding: 10rpx;
				// font-family: 'MyFont';
				background-color: #000000;
				color: #33ff9e;
			}

			.real_r_a_r {
				width: 260rpx;
				border-radius: 20rpx 50rpx 50rpx 20rpx;
				padding: 10rpx 20rpx;
				background-color: #152024;
				color: #33ff9e;
			}
		}

		.text {
			margin: 20rpx auto;
			width: 450rpx;
			text-align: center;
			border-radius: 20rpx;
			background-color: #000000;
			color: #6eff42;

			.aa {
				font-size: 30rpx;
			}

			.bb {
				font-size: 40rpx;
				font-family: 'MyFont';
			}
		}
	}

	.custom-style {
		margin-top: 30rpx;
		background-color: #2f2f2f;
	}

	.custom-style_w {
		padding: 20rpx;
		// background-color: #f3f3f3;
	}

	.text_top_dianf {
		// width: 320rpx;
		margin: 10rpx 0;
		background-color: rgba(53, 71, 0, 0.2);
		border-radius: 20rpx;
		border: 3rpx solid rgba(0, 255, 217, 1.0);
		padding: 10rpx;
		box-shadow: 0 0 20rpx rgba(0, 255, 217, 1);

		.text_bom {}

		.text_dianfa {
			// display: flex;
			// align-items: center;
			// justify-content: space-between;
			text-align: center;


		}

		.text_top {
			font-size: 45rpx;
			display: flex;
			align-items: center;
			justify-content: space-between;

			.text_a {
				color: rgba(0, 255, 255, 1.0);
				margin-left: 10rpx;
			}

			.text_dian_tit {
				width: 320rpx;
				display: flex;
				align-items: center;
				justify-content: space-between;
				color: rgba(157, 255, 0, 1.0);
			}

			.text_b {
				width: 150rpx;
				text-align: center;
				color: #000000;
				border-radius: 10rpx;
				background-color: rgba(0, 255, 255, 1.0);

			}
		}

	}

	.text_top_dianf_acv {
		// width: 320rpx;
		margin: 10rpx 0;
		background-color: rgba(127, 167, 185, 0.2);
		border-radius: 20rpx;
		border: 3rpx solid rgba(127, 167, 185, 0.8);
		padding: 10rpx;
		box-shadow: 0 0 20rpx rgba(127, 167, 185, 0.8);

		.text_bom {
			color: rgba(127, 167, 185, 0.8);
		}

		.text_dianfa {
			// display: flex;
			// align-items: center;
			// justify-content: space-between;
			text-align: center;

			.text_dian_tit {
				display: flex;
				align-items: center;
				justify-content: space-around;
			}
		}

		.text_top {
			font-size: 45rpx;
			display: flex;
			align-items: center;
			justify-content: space-between;

			.text_a {
				color: rgba(127, 167, 185, 0.8);
				margin-left: 10rpx;
			}

			.text_dian_tit {
				width: 320rpx;
				display: flex;
				align-items: center;
				justify-content: space-between;
				color: rgba(156, 175, 185, 0.8);
			}

			.text_b {
				width: 150rpx;
				text-align: center;
				color: #000000;
				border-radius: 10rpx;
				background-color: rgba(156, 175, 185, 0.8);

			}
		}

	}
</style>
<style>
	.u-picker__view__column__item {
		background-color: #cbe4ef !important;
	}

	.u-line-1 span {
		color: #000000;
		font-size: 50rpx;
	}

	page {
		background-color: #f3f3f3;
	}

	@font-face {
		font-family: 'MyFont';
		src: url('@/static/fonts/LED.otf');
	}

	@font-face {
		font-family: 'qingyuan';
		src: url('@/static/fonts/qingyuan.ttf');
	}
</style>